Hvordan sjekke om en matrise inkluderer et objekt i JavaScript?

Hvordan sjekke om en matrise inkluderer et objekt i JavaScript?
På de fleste programmeringsspråk på høyere nivå kommer matriser med innebygde metoder som kan brukes til å få tilgang til og manipulere data som er til stede i matriser. JavaScript har også slike metoder som vil være temaet for denne artikkelen. Spesifikt er metodene som kan brukes til å sjekke om et objekt med en bestemt egenskap/verdi er til stede i en matrise.

JavaScript tilbyr mange metoder hvis funksjonalitet kan brukes til å sjekke for objekter i matriser. Vi ser på de fleste av dem i detalj:

arr.noen () metode

Noen () -metoden tar en funksjon som et argument som sjekker om noe element i matrisen inneholder en spesifikk eiendomsverdi. Hvis den eiendomsverdien er funnet, returnerer metoden sann:

La ansatte = [FirstName: "John", LastName: "Doe", Age: 39, FirstName: "Adam", LastName: "Smith", alder: 40];
La funnet = ansatte.noen (obj =>
hvis (obj.alder == 40)
returnerer;

Returnfalse;
);
konsoll.logg (funnet);

Ellers returnerer det usant:

La ansatte = [FirstName: "John", LastName: "Doe", Age: 39, FirstName: "Adam", LastName: "Smith", alder: 40];
La funnet = ansatte.noen (obj =>
hvis (obj.alder == 55)
returnerer;

Returnfalse;
);
konsoll.logg (funnet);

arr.Inkluderer () Metode

Inkluderingsmetoden tar et objekt som et argument og returnerer sant hvis den er til stede i en matrise:

La Emp1 = FirstName: "John", LastName: "Doe", alder: 39;
La Emp2 = FirstName: "Adam", LastName: "Smith", alder: 40;
La ansatte = [emp1, emp2];
La funnet = ansatte.inkluderer (emp1);
konsoll.logg (funnet);

Det er viktig å merke seg at argumentobjektet og objektet inne i matrisen skal være det samme. Ulike objekter med samme verdier vil returnere falske:

La ansatte = [FirstName: "John", LastName: "Doe", Age: 39, FirstName: "Adam", LastName: "Smith", alder: 40];
La funnet = ansatte.Inkluderer (FirstName: "Adam", etternavn: "Smith", alder: 40);
konsoll.logg (funnet);

arr.finn () metode

Finn () -metoden ligner på noen () da den sjekker for spesifikke egenskapsverdier, men hvis den blir funnet, returnerer den objektet i stedet for ekte verdi:

La ansatte = [FirstName: "John", LastName: "Doe", Age: 39, FirstName: "Adam", LastName: "Smith", alder: 40];
La funnet = ansatte.finn (obj =>
hvis (obj.alder == 40)
returnerer;

Returnfalse;
);
konsoll.logg (funnet);

Hvis objektet ikke er til stede, returnerer Find () -metoden udefinert:

La ansatte = [FirstName: "John", LastName: "Doe", Age: 39, FirstName: "Adam", LastName: "Smith", alder: 40];
La funnet = ansatte.finn (obj =>
hvis (obj.alder == 28)
returnerer;

Returnfalse;
);
konsoll.logg (funnet);

arr.Filter () Metode

Filter () -metoden kan brukes på en matrise for å få en liste over alle objektene som passerer visse betingelser:

La ansatte = [FirstName: "John", LastName: "Doe", Age: 39, FirstName: "Adam", LastName: "Smith", alder: 40];
La funnet = ansatte.filter (obj =>
hvis (obj.alder == 40)
returnerer;

Returnfalse;
);
konsoll.logg (funnet);

arr.FindIndex () -metode

FindIndex () -metoden vil se etter spesifikk egenskapsverdi og returnere indeksen for det funnet objektet:

La ansatte = [FirstName: "John", LastName: "Doe", Age: 39, FirstName: "Adam", LastName: "Smith", alder: 40];
La funnet = ansatte.findIndex (obj =>
hvis (obj.alder == 40)
returnerer;

Returnfalse;
);
konsoll.logg (funnet);

Hvis objektet ikke er funnet, returnerer det -1:

La ansatte = [FirstName: "John", LastName: "Doe", Age: 39, FirstName: "Adam", LastName: "Smith", alder: 40];
La funnet = ansatte.findIndex (obj =>
hvis (obj.alder == 99)
returnerer;

Returnfalse;
);
konsoll.logg (funnet);

Konklusjon

I denne oppskrivningen gikk vi over flere måter å sjekke om en matrise inneholder et objekt i JavaScript. Alle disse metodene har noen få forskjeller i hvordan de fungerer. Disse forskjellene ble nevnt og omfattende omtalt i innlegget ovenfor.