Underscore.js es una biblioteca de JavaScript que proporciona muchas funciones útiles que ayudan en la programación en gran medida, como el mapa, el filtro, la invocación, etc., incluso sin utilizar ningún objeto integrado.
La función _.reject() se usa para dar la respuesta que no coincide con la condición dada. Se utiliza para encontrar aquellos elementos de la lista que no satisfacen la condición dada y luego solo para realizar cambios en ellos. Cuando todos los elementos de la lista se pasan a la función/itera y no quedan más elementos, el bucle _.reject() finaliza. Es lo opuesto a la función _.filter() ya que el filtro selecciona aquellos elementos que satisfacen la condición dada.
Sintaxis:
_.reject( list, predicate, [context] )
Parámetros: esta función acepta tres parámetros, como se mencionó anteriormente y se describe a continuación:
- Lista: este parámetro contiene la lista de elementos.
- Predicado: este parámetro contiene la condición que se utiliza para rechazar los elementos.
- Contexto: Es el texto que se utiliza para mostrar. Es un parámetro opcional.
Valores devueltos: esta función devuelve la array de elementos que no cumple la condición de la función _.reject().
Pasar una lista de números a la función _.reject(): La función ._reject() toma el elemento de la lista uno por uno y realiza las operaciones en el código. A continuación se muestra el ejemplo para encontrar los elementos impares de la lista.
Ejemplo:
<html> <head> <script type="text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js" > </script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore.js"> </script> </head> <body> <script type="text/javascript"> var odds = _.reject([1, 2, 3, 4, 5, 6], function(num){ return num % 2 == 0; }); console.log(odds); </script> </body> </html>
Producción:
Pasar una estructura a la función _.reject(): Elija una propiedad de los elementos sobre la base de la cual se aplicará la condición. A continuación se utilizó la propiedad ‘deshabilitada’. Dado que el ‘elemento2’ no tiene la propiedad deshabilitada, se rechaza y se entrega como salida.
Ejemplo:
<html> <head> <script type="text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> </script> <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore.js"> </script> </head> <body> <script type="text/javascript"> var data = { stuff: { item1: { name: "one", disabled: true }, item2: { name: "two" } } }; data.stuff = _.reject(data.stuff, function(val) { return val.disabled; }); console.log(data.stuff); </script> </body> </html>
Producción:
Pasar una lista de números y un valor para que coincida con el elemento: los elementos de la array que no coinciden con el número dado se rechazan y, por lo tanto, se muestran como una array en la salida.
Ejemplo:
<html> <head> <script type="text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js" > </script> <script type="text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore.js"></script> </head> <body> <script type="text/javascript"> console.log( _.reject({one: 1, two: 2, three: 3}, function(val, key){ return val === 2; })); </script> </body> </html>
Producción:
Usando dos funciones _.reject() juntas: Pase diferentes objetos a cada función _.reject() y luego use los siguientes resultados juntos usando los operadores lógicos como &&, ||, ! etc. Aquí, tanto los 2 objetos como las 2 listas de arrays se rechazan porque no cumplen la condición dada, por lo que se dan como salida.
Ejemplo:
<html> <head> <script type="text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js" > </script> <script type="text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore.js"> </script> </head> <body> <script type="text/javascript"> var arraylist1 = [true]; var arraylist2 = [null, {} , undefined, {}]; var object1 = {prop1: true}; var object2 = { prop1: null, prop2: true,prop3: true, }; if (_.reject(arraylist1) && _.reject(object1)) { console.log('arraylist1 and object1 are valid'); } if (_.reject(arraylist2) && _.reject(object2)) { console.log('arraylist2 and object2 do not have all items valid'); } </script> </body> </html>
Producción: