Hvordan få distinkte verdier fra en rekke objekter i JavaScript?

Hvordan få distinkte verdier fra en rekke objekter i JavaScript?
Arrays brukes ofte til lagring av data i JavaScript. Disse matriser kan inneholde objekter med mange egenskaper. Mens de jobber med denne typen matriser, står utviklerne ofte overfor en situasjon der de trenger å trekke ut unike eller forskjellige verdier fra matriser. For eksempel, hente en liste over alle distinkte/unike produktkategorier og så videre.

Denne bloggen vil definere måtene for å få distinkte/unike verdier fra en rekke objekter i JavaScript.

Hvordan få distinkte/unike verdier fra en rekke objekter i JavaScript?

For å få de unike verdiene fra en rekke objekter, bruk følgende tilnærminger:

  • “Sett” -objekt med “Map ()” -metode.
  • “Filter ()” -metode med “Map ()” -metode.

Metode 1: Få distinkte verdier fra en rekke objekter ved å bruke "sett" objekt med "kart ()" -metode

For å hente distinkte verdier fra en rekke objekter, bruk "Sett”Objekt med“kart()”Metode. Det "settet" tillater lagring av distinkte verdier av enhver type. Metoden “Map ()” brukes til å lage en ny matrise som inneholder utgangen ved å påkalle en gitt tilbakeringingsfunksjon på hvert element i den originale matrisen. Den aksepterer en funksjon som en parameter som kaller den på hvert array -element og deretter sender ut en ny verdi.

Eksempel

Lag en rekke objekter som heter “StudentDetails”:

const studentDetails = [
Id: 1, navn: "Joseph", alder: 15,
Id: 2, navn: "Milli", alder: 13,
Id: 3, navn: "John", alder: 11,
Id: 4, navn: "Mike", alder: 16,
Id: 5, navn: "John", alder: 18
];

Ring MAP () -metoden for å lage en ny matrise med bare “Navn”Eiendom av hvert objekt i den opprinnelige matrisen. Gi den den til den angitte konstruktøren som vil lagre unike verdier ved å fjerne alle duplikatverdiene. Bruk deretter spredningsoperatøren “.. ”For å konvertere settobjektet til en matrise:

const distinctStdnames = [... nytt sett (studentdetails.Kart (obj => obj.Navn))];

Til slutt, skriv ut den resulterende matrisen på konsollen:

konsoll.logg (distinktstdnames);

Utgangen indikerer at utvalget av distinkte navneverdier er hentet fra en rekke objekter:

Metode 2: Få distinkte verdier fra en rekke objekter ved å bruke "filter ()" -metode Med "kart ()" -metode

En annen tilnærming for å få de unike verdiene fra en rekke objekter er å bruke “filter()”Metode med“kart()”Metode. "Filter ()" -metoden oppretter en ny matrise med alle elementer som passerer en spesifikk tilstand, mens "Map ()" -metoden oppretter en ny matrise med resultatene av å påkalle en levert funksjon på hvert medlem i matrisen.

Eksempel

Påkalle metoden “filter ()” med “kart ()” -metoden for å hente de unike verdiene til “Navn”Eiendom av objektene:

const distinctStdnames = StudentDetails.Kart ((element) => Vare.Navn)
.Filter ((Navn, indeks, CurrentVal) =>
CurrentVal.indexOf (navn) === INDEX
);

Til slutt, vis de unike verdiene på konsollen:

konsoll.logg (distinktstdnames);

Produksjon

Det handler om å få tydelige/unike verdier fra en rekke objekter i JavaScript.

Konklusjon

For å få de unike verdiene fra en rekke objekter, bruk "Sett”Objekt med“kart()”Metode eller“filter()”Metode med“kart()”Metode. Når det gjelder ytelse, er den første tilnærmingen “sett” -objektet med “kart ()” -metoden best. Denne bloggen definerte måtene for å få unike verdier fra en rekke objekter i JavaScript.