Grupa tablica obiektów w JavaScript

Grupa tablica obiektów w JavaScript
Czasami programiści muszą zorganizować szereg obiektów zgodnie z konkretną wartością klucza lub właściwości. JavaScript oferuje do tego kilka predefiniowanych metod i bibliotek, w tym „zmniejszyć()”Metoda lub„Grupuj według()„Metoda z biblioteki Lodash.

Ten samouczek pokaże metody grupowania obiektów JavaScript w tablicy.

Jak pogrupować tablicę obiektów w JavaScript?

Aby pogrupować tablicę obiektów w JavaScript, użyj następujących metod:

  • Metoda zmniejszania ()
  • Metoda grupy () z biblioteki Lodash

Zrozumiemy działanie tych metod jeden po drugim.

Metoda 1: Grupa tablica obiektów za pomocą metody redukuj ()

Najczęściej stosowaną metodą grupowania tablicy obiektów jest „zmniejszyć()" metoda. Jest wywoływany z funkcją odwołania. Zmniejsza tablicę obiektów zgrupowanych według określonego typu. Metoda redukująca () jest potężna, ale nieco skomplikowana do zrozumienia.

Składnia

Użyj następującej składni do metody redukuj (), aby zgrupować tablicę obiektów:

zmniejszyć (poprzednia wartość, wartość current)

Wartość zwracana

Zwraca sumę wszystkich zgrupowanych elementów w tablicy.

Przykład

Utwórz szereg obiektów „szyk„Z nieruchomościami, nazwami i kategoriami:

const array = [
Nazwa: „Apple”, kategoria: „owoce”,
Nazwa: „Orange”, kategoria: „kolory”,
Nazwa: „Mango”, kategoria: „owoce”,
Nazwa: „Peach”, kategoria: „kolory”,
Nazwa: „Orange”, kategoria: „owoce”,
Nazwa: „winogrona”, kategoria: „owoce”,
];

Zadzwoń do "zmniejszyć()„Metoda z funkcją strzałki z tyłu wywołania, która zgrupuje obiekty na podstawie klucza„ kategorii ”i przechowuje je w zmiennej”GroupArrayObject”:

const grouparrayObject = tablica.redukuj ((grupa, arr) =>
const kategoria = arr;
grupa [kategoria] = grupa [kategoria] ?? [];
grupa [kategoria].push (ARR);
grupa powrotna;
,
);

Wydrukuj wynikową tablicę na konsoli za pomocą „konsola.dziennik()" metoda:

konsola.log (GroupArrayObject);

Wyjście

Z powyższego wyjścia, wynikowa tablica ma dwie zminimalizowane tablice „Zabarwienie" I "Owoce". Po prostu kliknij głowę tablicy obok zminimalizowanej nazwy tablicy, aby ją rozwinąć:

Teraz wyjście pokazuje dwa obiekty „Zabarwienie" I "Owoce,”, Które zawierają odpowiednio 2 i 4 tablice.

Metoda 2: Grupa tablica obiektów za pomocą metody GroupBy ()

Inną metodą grupowania szeregu obiektów jest „Grupuj według()" metoda. Metoda GroupBy () zostanie zastosowana w projekcie NPM z „Lodash" biblioteka. Jest prostszy do zrozumienia i wymaga mniej wierszy kodu.

Składnia

Postępuj zgodnie z poniższą składnią do metody GroupBy (), aby zgrupować tablicę obiektów w JavaScript:

_.grupa (lista, klucz)

W powyższej składni,

  • „„lista”To tablica obiektów.
  • „„klucz”Jest właściwością obiektów, za pomocą których elementy zostaną pogrupowane.

Wartość zwracana

Zwraca wiele kolekcji pogrupowanych według danego klucza.

Przykład

Użyj następujących poleceń, aby uwzględnić bibliotekę Lodash w swoim projekcie NPM:

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

Następnie dodaj bibliotekę Lodash w pliku JavaScript z następującym wierszem:

var _ = wymaga („lodash”);

Następnie po prostu użyj następujących wierszy kodu:

const array = [
Nazwa: „Apple”, kategoria: „owoce”,
Nazwa: „Orange”, kategoria: „kolory”,
Nazwa: „Mango”, kategoria: „owoce”,
Nazwa: „Peach”, kategoria: „kolory”,
Nazwa: „Orange”, kategoria: „owoce”,
Nazwa: „winogrona”, kategoria: „owoce”,
];
Niech wyjście = _.GroupBy (tablica, „kategoria”);
konsola.log (wyjście);

W tym kodowym fragmencie:

  • Utwórz tablicę obiektów o nazwie „tablica”.
  • Zadzwoń do "Grupuj według()„Metoda, przekazując szereg obiektów”szyk”I klucz„Kategoria„W nim, który grupuje wszystkie elementy związane z kategoriami.

Uruchom powyższy kod, a wyjście będzie:

Można łatwo zaobserwować, że obiekty zostały teraz pogrupowane na podstawie wartości klucza „kategorii”.

Wniosek

Do grupowania, szeregu obiektów w JavaScript, użyj „zmniejszyć()”Metoda lub„Grupuj według()" metoda. Metoda redukująca () jest najczęściej stosowaną metodą grupowania tablicy obiektów, podczas gdy metoda GroupBy () wymaga mniej kodu i jest łatwiejsza do zrozumienia, ale będzie wykonywana w projekcie NPM w bibliotece Lodash Biblioteka. Ten samouczek pokazał metody grupowania obiektów JavaScript w tablicy.