Agrupación de elementos de un array con funciones

JavaScriptJavaScriptBeginner
Practicar Ahora

This tutorial is from open-source community. Access the source code

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

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.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL javascript(("JavaScript")) -.-> javascript/BasicConceptsGroup(["Basic Concepts"]) javascript(("JavaScript")) -.-> javascript/AdvancedConceptsGroup(["Advanced Concepts"]) javascript/BasicConceptsGroup -.-> javascript/variables("Variables") javascript/BasicConceptsGroup -.-> javascript/data_types("Data Types") javascript/BasicConceptsGroup -.-> javascript/arith_ops("Arithmetic Operators") javascript/BasicConceptsGroup -.-> javascript/comp_ops("Comparison Operators") javascript/BasicConceptsGroup -.-> javascript/array_methods("Array Methods") javascript/AdvancedConceptsGroup -.-> javascript/higher_funcs("Higher-Order Functions") subgraph Lab Skills javascript/variables -.-> lab-28325{{"Agrupación de elementos de un array con funciones"}} javascript/data_types -.-> lab-28325{{"Agrupación de elementos de un array con funciones"}} javascript/arith_ops -.-> lab-28325{{"Agrupación de elementos de un array con funciones"}} javascript/comp_ops -.-> lab-28325{{"Agrupación de elementos de un array con funciones"}} javascript/array_methods -.-> lab-28325{{"Agrupación de elementos de un array con funciones"}} javascript/higher_funcs -.-> lab-28325{{"Agrupación de elementos de un array con funciones"}} end

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:

  1. Utiliza Array.prototype.map() para mapear los valores del array a un nombre de función o propiedad.
  2. 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.