Gruppe en rekke objekter i JavaScript

Gruppe en rekke objekter i JavaScript
Noen ganger trenger utviklerne å organisere en rekke objekter i henhold til en bestemt nøkkel eller eiendomsverdi. JavaScript tilbyr noen forhåndsdefinerte metoder og biblioteker for å gjøre dette, inkludert "redusere()”Metode eller“gruppe av()”Metode fra Lodash -biblioteket.

Denne opplæringen vil demonstrere metoder for gruppering av JavaScript -objekter i en matrise.

Hvordan gruppere en rekke objekter i JavaScript?

For å gruppere en rekke objekter i JavaScript, bruk følgende metoder:

  • Reduser () Metode
  • Groupby () -metode fra Lodash Library

La oss forstå arbeidet med disse metodene en etter en.

Metode 1: Gruppe en rekke objekter ved bruk av redusere () metode

Den mest brukte metoden for å gruppere rekke objekter er "redusere()”Metode. Det påkalles med tilbakeringingsfunksjonen. Det reduserer utvalget av objekter gruppert etter spesifisert type. Reduser () -metoden er kraftig, men litt kompleks å forstå.

Syntaks

Bruk følgende syntaks for å redusere () -metoden for å gruppere en rekke objekter:

Reduser (forrige verdi, CurrentValue)

Returverdi

Den returnerer summen av alle grupperte elementer i en matrise.

Eksempel

Lag en rekke objekter “Array”Med egenskaper, navn og kategorier:

const array = [
Navn: "Apple", kategori: "frukt",
navn: "oransje", kategori: "farger",
Navn: "Mango", kategori: "frukt",
Navn: "Peach", kategori: "Farger",
navn: "oransje", kategori: "frukt",
Navn: "Gruer", kategori: "Frukt",
];

Ring "redusere()”Metode med Call Back Arrow -funksjonen som vil gruppere objektene basert på“ kategori ”-tasten, og lagre dem i en variabel”GroupArrayObject”:

const groupArrayObject = Array.redusere ((gruppe, arr) =>
const kategori = arr;
gruppe [kategori] = gruppe [kategori] ?? [];
gruppe [kategori].push (arr);
Returgruppe;
,
);

Skriv ut den resulterende matrisen på konsollen ved å bruke “konsoll.Logg()”Metode:

konsoll.Logg (GroupArrayObject);

Produksjon

Fra output ovenfor har den resulterende matrisen to minimerte matriser “Farger”Og“Frukt”. Bare klikk på arrayhodet ved siden av det minimerte matrise navnet for å utvide det:

Nå viser utgangen to objekter, “Farger”Og“Frukt,”Som inneholder henholdsvis 2 og 4 matriser.

Metode 2: Gruppe en rekke objekter ved bruk av GroupBy () -metode

En annen metode for å gruppere en rekke objekter er "gruppe av()”Metode. Groupby () -metoden vil bli brukt i NPM -prosjektet med "Lodash”Bibliotek. Det er enklere å forstå og tar færre kodelinjer.

Syntaks

Følg den nedenfor-nevnte syntaks for GroupBy () -metoden for å gruppere rekke objekter i JavaScript:

_.Groupby (liste, nøkkel)

I syntaks ovenfor,

  • liste”Er en rekke objekter.
  • nøkkel”Er egenskapen til gjenstandene som elementene vil bli gruppert.

Returverdi

Den returnerer flere samlinger gruppert av en gitt nøkkel.

Eksempel

Bruk følgende kommandoer til å inkludere Lodash -biblioteket i NPM -prosjektet:

$ npm i -g npm
$ npm i -Save Lodash

Legg deretter til Lodash -biblioteket i JavaScript -filen med følgende linje:

var _ = krever ("lodash");

Etter det, bare bruk følgende kodelinjer:

const array = [
Navn: "Apple", kategori: "frukt",
navn: "oransje", kategori: "farger",
Navn: "Mango", kategori: "frukt",
Navn: "Peach", kategori: "Farger",
navn: "oransje", kategori: "frukt",
Navn: "Gruer", kategori: "Frukt",
];
La utgang = _.Groupby (Array, "kategori");
konsoll.logg (utgang);

I denne kodebiten:

  • Lag en rekke objekter kalt “Array”.
  • Ring "gruppe av()”Metode ved å passere en rekke objekter”Array”Og en nøkkel”kategori”I den, som grupper alle elementene relatert til kategoriene.

Kjør koden ovenfor, og utgangen vil være:

Det kan lett observeres at objektene nå er gruppert basert på deres "kategori" -nøkkel.

Konklusjon

For gruppering, en rekke objekter i JavaScript, bruk "redusere()”Metode eller“gruppe av()”Metode. Reduce () -metoden er den mest brukte metoden for å gruppere en rekke objekter, mens GroupBy () -metoden krever mindre kode og er lettere å forstå, men den vil utføre i NPM -prosjektet med Lodash -biblioteket. Denne opplæringen demonstrerte metodene for å gruppere JavaScript -objekter i en matrise.