Introducción
En este laboratorio, aprenderemos cómo agrupar elementos de una matriz basados en una función dada utilizando JavaScript. Utilizaremos Array.prototype.map() y Array.prototype.reduce() para crear un objeto donde las claves se generan a partir de los resultados mapeados. Al final de este laboratorio, tendrás una comprensión sólida de cómo agrupar y categorizar datos en JavaScript.
Cómo agrupar elementos de un array
Si quieres practicar la codificación, puedes comenzar abriendo la Terminal/SSH y escribiendo node. Una vez que estés listo, puedes agrupar los elementos de un array basados en una función dada siguiendo los siguientes pasos:
- Utiliza
Array.prototype.map()para mapear los valores del array a un nombre de función o propiedad. - Utiliza
Array.prototype.reduce()para crear un objeto donde las claves se generan a partir de los resultados mapeados.
A continuación, se muestra un fragmento de código de ejemplo:
const groupBy = (arr, fn) =>
arr
.map(typeof fn === "function" ? fn : (val) => val[fn])
.reduce((acc, val, i) => {
acc[val] = (acc[val] || []).concat(arr[i]);
return acc;
}, {});
Para probar el código, puedes utilizar los siguientes ejemplos:
groupBy([6.1, 4.2, 6.3], Math.floor); // {4: [4.2], 6: [6.1, 6.3]}
groupBy(["one", "two", "three"], "length"); // {3: ['one', 'two'], 5: ['three']}
Estos devolverán objetos con claves basadas en la función especificada y valores que son arrays de los elementos originales que coinciden con la función.
Resumen
¡Felicidades! Has completado el laboratorio de Agrupar Elementos de un Array. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.