Hvordan filtrere objektarrayer basert på attributter i JavaScript

Hvordan filtrere objektarrayer basert på attributter i JavaScript
Arrays er datastrukturer som gjør det mulig å lagre forskjellige verdier i en enkelt variabel ved å lagre informasjon i et sett med nærliggende minneadresser. En matrise kan inneholde en samling av data av samme type. Du kan også lagre mange objekter med samme type og attributtene deres i en matrise, som deretter kan hentes eller filtreres ved hjelp av forskjellige metoder i JavaScript.

Denne studien vil diskutere metodene for å filtrere objektets matriser basert på attributter.

Hvordan filtrere objektarrayer basert på attributter i JavaScript?

For å filtrere objektarrayer basert på attributter i JavaScript, bruk følgende metoder:

  • finn () metode
  • Filter () Metode

La oss undersøke alle disse metodene individuelt.

Metode 1: Filterobjektarrayer basert på attributter ved bruk av Find () -metode

"Finn ()" -metoden brukes til å filtrere et enkelt objekt fra en rekke objekter som tilfredsstiller den gitte tilstanden. Her vil vi undersøke Find () -metoden med pilfunksjonen (=>).

Arrow -funksjonen er også en anonym funksjon, som den er definert uten funksjonsnavnet. Lær mer om pilfunksjoner.

Syntaks
Følg den gitte syntaksen for å bruke pilfunksjonen med filter ():

filter (currentElement =>
returner betinget avtalen;
);

Den returnerer det første elementet som samsvarer med den spesifiserte tilstanden, og hvis ingen element samsvarer, kommer det tilbake "udefinert”.

Eksempel:
Først vil vi lage en rekke objekter som heter “Employalist”:

var ansatte = [[
Id: 101, navn: 'Rhonda', alder: 20, avd. 'Revisjon',
Id: 111, navn: 'Susan', alder: 28, avd. 'Kontoer',
Id: 191, navn: 'Stephen', alder: 32, avd. 'Revisjon',
Id: 131, navn: 'Napoleon', alder: 20, avd. 'Hr'
];

Filtrer objektet basert på attributt “gjeld”Det er lik“Revidere”Ved å bruke Find () -metode:

var ansatt = EmployeeList.finn (emp =>
Returner emp.Dept === 'revisjon';
);

Til slutt, skriv ut det filtrerte objektet på konsollen med "konsoll.Logg()”Metode:

konsoll.logg (ansatt);

Utgangen viser det eneste første objektet som stemmer overens med avdatet === 'revisjon':

Hvis du vil få tilgang til et attributt som ikke eksisterer i objektet, vil i så fall filter () -metoden returnere "udefinert”:

Hvordan filtrere alle objektene relatert til en gitt tilstand? Følg neste avsnitt.

Metode 2: Filterobjektarrayer basert på attributter ved bruk av filter () -metode

For å filtrere alle objektene fra en matrise basert på attributter på den gitte tilstanden, forhåndsdefinerte JavaScript “filter()”Metode brukes. Her vil vi undersøke to tilnærminger for å bruke et filter på en rekke objekter, en pilfunksjon eller en tilbakeringingsfunksjon. Den mottar hvert element som sendes til det av filter () -metoden, som internt sløyfer gjennom matrisernes elementer. Det legger elementet til den returnerte matrisen hvis tilbakeringingsfunksjonen kommer tilbake.

Syntaks
Syntaks for filter () -metoden er som følger:

filter (tilbakeringing, objekt);

Her tar filter () -metoden to parametere, “tilbakeringingsfunksjon”, Som er den obligatoriske parameteren, og“gjenstand”, Som er et valgfritt argument. Den sender ut en ny matrise som inneholder hvert element som oppfyller det spesifiserte kravet. Hvis ingen av elementene tilfredsstiller den spesifiserte tilstanden, vil den returnere en tom matrise som en utgang.

For å bruke filter () -metode med tilbakeringingsfunksjon for filtreringsobjektarray basert på attributter, bruk følgende syntaks:

var newArray = matrise.filter (funksjon (CurrentElement)
returner betinget avtalen;
);

Tilbakeringingsfunksjonen () tar tre parametere “CurrentElement”,“indeks", og en "Array”. CurrentElement er elementet i matrisen som for øyeblikket behandles av tilbakeringingsfunksjonen, og det er det obligatoriske argumentet. Til sammenligning er indeksen og matrisen valgfrie parametere.

Eksempel 1: Filterobjektarrayer basert på attributter ved bruk av filter () -metode med tilbakeringingsfunksjon
Vi vil bruke den samme objektarrayen "Employalist”Opprettet i forrige eksempel. Nå vil vi bruke filter () -metoden med tilbakeringingsfunksjon for å filtrere matrisen til objekt basert på attributtet “Navn”:

var ansatt = EmployeeList.filter (funksjon (emp)
Returner emp.name === 'Susan';
);

Produksjon

Eksempel 2: Filterobjektarrayer basert på attributter ved bruk av filter () -metode med en pilfunksjon
Her vil vi bruke filter () -metoden med pilfunksjon for å filtrere matrisen til objekt basert på attributtet “gjeld”:

var ansatt = EmployeeList.filter (EMP =>
Returner emp.Dept === 'revisjon';
);

Utgangen viser alle dataene som samsvarer med avdelingen === 'Audit':

Hvis du vil få tilgang til attributtet som ikke eksisterer i objektet, vil den returnere en tom matrise:

Vi har samlet alle metodene for å filtrere en rekke objekter basert på attributtene i JavaScript.

Konklusjon

For å filtrere objektoppstillingen basert på attributter i JavaScript, bruk JavaScript-innebygde metoder som "finne()”Metode eller“filter()”Metode. Finn () -metoden gir ut det første elementet som samsvarer med den spesifiserte tilstanden, og hvis ingen element samsvarer, returnerer den udefinert. I kontrast gir filter () -metoden en ny matrise som inneholder elementer som oppfyller den spesifiserte tilstanden. Hvis ingen av elementene tilfredsstiller den spesielle tilstanden, vil det gi en tom rekke. I denne studien har vi diskutert metodene for å filtrere utvalget av objekter basert på attributtene deres med eksempler.