Hvordan sammenligne objekter i JavaScript

Hvordan sammenligne objekter i JavaScript
I JavaScript er et objekt en ikke-primitiv datatype eller enhet som lagrer mange datasamlinger med egenskaper. Å sammenligne tall eller tekster er ganske enkelt i JavaScript, men det er vanskeligere å sammenligne to objekter. Siden JavaScript lett kan sammenligne to strenger, vil vi derfor konvertere objektene til strenger og deretter utføre sammenligningsoperasjoner.

Denne opplæringen vil demonstrere metodene for å sammenligne objekter i JavaScript.

Hvordan sammenligne objekter i JavaScript?

For å sammenligne objekter i JavaScript, bruk "JSON.Stringify ()”Metode. Bruker JSON.Stringify () -metode, verdien/objektet konverteres til en JSON -streng. For å avgjøre om de to objektene faktisk er likeverdige, kan du sammenligne de to utgangene etter å ha brukt JSON.Stringify () for å konvertere de to objektene til strenger.

Syntaks
Følg den under-nevnte syntaks for å sammenligne objekter ved hjelp av JSON.Stringify () -metode:

JSON.Stringify (verdi)

JSON.Stringify () -metoden tar bare en parameter, som er "verdi”, Som er JavaScript -objektet som skal konverteres til en JSON -streng.

Eksempel 1: Sammenlign objekter med samme egenskaper
Først må du lage to objekter som heter “Info” og “informasjon”Med de samme egenskapene”Navn”Og“alder”:

var info =
Navn: "Stephen",
Alder: 25

var informasjon =
Navn: "Stephen",
Alder: 25

Sammenlign deretter disse to objektene ved hjelp av JSON.Stringify () -metode med en streng likestillingsoperatør. JSON.Stringify () -metode konverterer objekter til strenger og sammenligner deretter de resulterende strengene ved å bruke den strenge likestillingsoperatøren som vil sammenligne på både sin type og verdien:

konsoll.Logg (JSON.Stringify (info) === JSON.Stringify (informasjon));

Utgangen viser “ekte”Det vil indikere at begge objektene er like:

Eksempel 2: Sammenlign gjenstander med samme egenskaper, men forskjellige steder
I dette eksemplet, først, legg til en eiendom "kontakt”I objekt“ informasjon ”:

var informasjon =
Navn: "Stephen",
Kontakt: "2345667",
Alder: 25

Sammenlign da objektene “info”Og“informasjon”Bruke streng likestillingoperatør:

konsoll.Logg (JSON.Stringify (info) === JSON.Stringify (informasjon));

Utgangen vises “falsk”Fordi plasseringen av objektets egenskaper ikke er den samme:

Her oppstår spørsmålet, hvorfor bruker vi ikke en likhetsoperatør for å sammenligne objekter i stedet for JSON.Stringify () -metode? Følg delen nedenfor.

Hvorfor blir ikke objekter sammenlignet med likestillingsoperatøren?

JavaScript tilbyr to metoder for sammenligning, den ene blir sammenlignet med verdier, og den andre er med referanse. De primitive typene (streng, tall) blir sammenlignet med verdier.

Som vi vet, den løse likestillingsoperatøren “==”Sammenligner datatyper etter verdier, mens den strenge likestillingsoperatøren”===”Sammenligner primitive datatyper etter både deres type og verdien. Objekter som bruker sammenligningsoperatører “==”Og“===”Kan ikke sammenlignes fordi JavaScript sammenligner objekter basert på adressene deres, også kjent som sammenligning som referanse.

La oss bekrefte at objektene ikke blir sammenlignet med likhetsoperatører (== og ===).

Eksempel 1: Bruke løs likestillingsoperatør (==)
Her vil vi sammenligne begge objektene “info”Og“informasjon”Som er opprettet i forrige eksempel, ved å bruke løs likestillingsoperatør (==):

konsoll.logg (info == informasjon)

Utgangen vises “falsk”Fordi objektene sammenlignes med referanse:

Eksempel 2: Bruke den strenge likestillingsoperatøren (===)
Nå vil vi sammenligne begge objektene ved å bruke streng likestillingsoperatør:

konsoll.logg (info === informasjon)

Produksjon

Som du kan se at likestillingsoperatørene ikke sammenligner objektene slik, tillater JavaScript å sammenligne objekter ved å konvertere dem til strenger ved å bruke "JSON.Stringify ()”Metode.

Vi har gitt den enkleste løsningen for å sammenligne objekter i JavaScript.

Konklusjon

For å sammenligne objekter i JavaScript, kan du bruke "JSON.Stringify ()”Metode som først vil konvertere en JavaScript -verdi/objekt til en JSON -streng, og deretter kan du sammenligne de returnerte strengene ved hjelp av den strenge likestillingsoperatøren. Som du vet, kan JavaScript enkelt sammenligne to strenger, men det er vanskelig å sammenligne to objekter. For å avgjøre om de to objektene faktisk er likeverdige, kan du sammenligne de to utgangene etter å ha brukt JSON.Stringify () for å konvertere de to objektene til strenger. I denne håndboken demonstrerte vi metodene for å sammenligne objekter i JavaScript.