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 _.countBy() se usa para clasificar una lista en grupos y devuelve un recuento del número de objetos en cada grupo. Funciona haciendo coincidir el valor de cada elemento con el otro. Si coinciden, el recuento de una colección aumenta en 1; de lo contrario, el recuento de otras colecciones/grupos que tienen ese valor aumenta en 1. También puede pasar una función basada en el resultado de quién recopilará los elementos y aumentará el recuento de cada grupo. Puede coincidir tanto por número como por string.
Sintaxis:
_.countBy(list, iteratee, [context])
Parámetros: esta función acepta tres parámetros, como se mencionó anteriormente y se describe a continuación:
- Lista: este parámetro se utiliza para contener la lista de elementos.
- Iteratee: este parámetro se utiliza para mantener la condición de prueba.
- Contexto: el contenido de texto que debe mostrarse.
Valores devueltos: Devuelve las colecciones como los diferentes arrays.
Pasando la función Math.ceil() a la función _.countBy(): La función _.countBy() toma el elemento de la lista uno por uno y lo pasa a la otra función mencionada aquí. Aquí la función toma el techo de cada número y devuelve sus valores. Entonces, todos los valores de la array se cuentan uno por uno después de que se haya tomado su techo y luego se cuentan según sean iguales o diferentes.
Ejemplo:
<html> <head> <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(_.countBy([2.7, 3.4, 6.6, 1.2, 2.0, 2.4], function(num){ return Math.ceil(num); })); </script> </body> </html>
Producción:
Usar length() en la función _.countBy(): pasar los elementos de la array a la función countBy(). Luego, averigüe la longitud de cada elemento y haga colecciones de las longitudes que son iguales. Finalmente, muestre el conteo de cada colección con las respectivas longitudes a la izquierda.
Ejemplo:
<html> <head> <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(_.countBy(['HTML', 'CSS3', 'JS', 'PHP'], 'length')); </script> </body> </html>
Producción:
Usando una propiedad de la array pasada en la función _.countBy(): Primero declare la array (aquí la array es ‘arr’). Elija una condición en la que necesite contar como aquí ‘prop3’. Luego, los elementos que tienen el mismo valor en ‘prop3’ se agruparán en 1 colección. El resultado final contendrá el prop3 en el lado izquierdo junto con su conteo en el lado derecho. Como aquí en prop3, «Geeks» viene dos veces, por lo que su cuenta será 2. Console.log la respuesta final.
Ejemplo:
<html> <head> <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 arr = [ {prop1:"10", prop2:"07", prop3: "Geeks"}, {prop1:"12", prop2:"86", prop3: "for"}, {prop1:"11", prop2:"58", prop3: "Geeks"} ]; console.log(_.countBy(arr, 'prop3')); </script> </body> </html>
Producción:
Pasando ‘fecha’ como propiedad de la array a la función _.countBy() juntos: primero defina una array con una propiedad como ‘fecha’ del formato ‘dd-mm-yy’. Luego pase la array y la propiedad ‘fecha’ a la función _.countBy(). Los elementos que tengan la misma fecha se agruparán como una colección y luego se mostrará el recuento de cada grupo en el resultado.
Ejemplo:
<html> <head> <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 orders = [ { date:"30-60-90 Day", Name:"Kim", amount:415 }, { date:"30-60-90 Day", Name:"Kelly", amount:175 }, { date:"30 Day", Name:"Shelly", amount:400 }, { date:"30 Day", Name:"Sarvesh", amount:180 } ]; console.log(_.countBy(orders, "date")); </script> </body> </html>
Producción:
Nota: estos comandos no funcionarán en la consola de Google o en Firefox, ya que estos archivos adicionales deben agregarse y no se agregaron. Por lo tanto, agregue los enlaces dados a su archivo HTML y luego ejecútelos.
<script type="text/javascript" src = "https://cdnjs.cloudflare.com/ajax/libs/underscore.js/1.9.1/underscore-min.js"> </script>