Agrupe una variedad de objetos en JavaScript

Agrupe una variedad de objetos en JavaScript
A veces, los desarrolladores deben organizar una serie de objetos de acuerdo con una clave o valor de propiedad particular. JavaScript ofrece algunos métodos y bibliotecas predefinidas para hacer esto, incluido el "reducir()"Método o el"agrupar por()"Método de la Biblioteca Lodash.

Este tutorial demostrará métodos para agrupar objetos de JavaScript en una matriz.

Cómo agrupar una matriz de objetos en JavaScript?

Para agrupar una matriz de objetos en JavaScript, use los siguientes métodos:

  • Reducir () método
  • Método Groupby () de la Biblioteca Lodash

Entendamos el funcionamiento de estos métodos uno por uno.

Método 1: Agrupe una matriz de objetos utilizando el método reduce ()

El método más utilizado para agrupar la matriz de objetos es el "reducir()" método. Se invoca con la función de devolución de llamadas. Reduce la matriz de objetos agrupados por tipo especificado. El método Reder () es poderoso pero un poco complejo de entender.

Sintaxis

Use la siguiente sintaxis para el método Rede () para agrupar una matriz de objetos:

Reducir (Valor anterior, CurrentValue)

Valor de retorno

Devuelve la suma de todos los elementos agrupados en una matriz.

Ejemplo

Crear una variedad de objetos "formación"Con propiedades, nombres y categorías:

Const Array = [
Nombre: "Apple", Categoría: "Frutas",
nombre: "naranja", categoría: "colores",
nombre: "mango", categoría: "frutas",
Nombre: "Peach", categoría: "Colors",
Nombre: "Orange", Categoría: "Fruits",
nombre: "uvas", categoría: "frutas",
];

Llama a "reducir()"Método con la función de flecha de devolución de llamada que agrupará los objetos en función de la tecla" Categoría "y los almacenará en una variable"grouparrayobject":

const groupArrayObject = array.reducir ((grupo, arr) =>
const categoría = arr;
Grupo [Categoría] = Grupo [Categoría] ?? [];
Grupo [Categoría].push (arr);
grupo de regreso;
,
);

Imprima la matriz resultante en la consola utilizando el "consola.registro()" método:

consola.log (groupArrayObject);

Producción

De la salida anterior, la matriz resultante tiene dos matrices minimizadas "Colores" y "Frutas". Simplemente haga clic en el cabezal de la matriz junto al nombre de la matriz minimizada para expandirlo:

Ahora la salida muestra dos objetos ","Colores" y "Frutas,Que contienen 2 y 4 matrices, respectivamente.

Método 2: agrupar una matriz de objetos usando el método GroupBy ()

Otro método para agrupar una matriz de objetos es el "agrupar por()" método. El método GroupBy () se utilizará en el proyecto NPM con el "lodash" biblioteca. Es más simple de entender y toma menos líneas de código.

Sintaxis

Siga la sintaxis mencionada a continuación para el método GroupBy () para agrupar la matriz de objetos en JavaScript:

_.Groupby (lista, clave)

En la sintaxis anterior,

  • El "lista"Es una variedad de objetos.
  • El "llave"Es la propiedad de los objetos por los cuales se agruparán los elementos.

Valor de retorno

Devuelve las múltiples colecciones agrupadas por una clave dada.

Ejemplo

Use los siguientes comandos para incluir la Biblioteca Lodash en su proyecto NPM:

$ npm i -g npm
$ npm i --save lodash

Luego, agregue la biblioteca LOdash en el archivo JavaScript con la siguiente línea:

var _ = requerir ("lodash");

Después de eso, simplemente use las siguientes líneas de código:

Const Array = [
Nombre: "Apple", Categoría: "Frutas",
nombre: "naranja", categoría: "colores",
nombre: "mango", categoría: "frutas",
Nombre: "Peach", categoría: "Colors",
Nombre: "Orange", Categoría: "Fruits",
nombre: "uvas", categoría: "frutas",
];
Sea la salida = _.Groupby (matriz, "categoría");
consola.log (salida);

En este fragmento de código:

  • Crear una matriz de objetos llamado "matriz".
  • Llama a "agrupar por()"Método al pasar una matriz de objetos"formación"Y una clave"categoría"En él, que agrupa todos los elementos relacionados con las categorías.

Ejecute el código anterior y la salida será:

Se puede observar fácilmente que los objetos ahora se han agrupado en función del valor de su clave de "categoría".

Conclusión

Para la agrupación, una variedad de objetos en JavaScript, use el "reducir()"Método o el"agrupar por()" método. El método Red () es el método más utilizado para agrupar una matriz de objetos, mientras que el método GroupBy () requiere menos código y es más fácil de entender, pero se ejecutará en el proyecto NPM con la Biblioteca Lodash. Este tutorial demostró los métodos para agrupar los objetos de JavaScript en una matriz.