Vi kan imidlertid ikke bruke likestillingsoperatøren for å sammenligne matriser. Årsaken bak dette er at JavaScript -matrise er en objekttype og objekter sammenlignes basert på referansene til variablene og ikke på verdiene.
const array1 = [1, 2, 3];I koden ovenfor har vi initialisert to matriser som er de samme. Imidlertid vil vi i utgangen se falsk:
For å løse dette problemet, vil vi derfor lære et par måter å sammenligne to matriser i JavaScript.
Metode 1: ToString ()
De toString () Metode er en innebygd metode for JavaScript som konverterer alle datatype som heltall til en streng og deretter returnerer det heltallet som en streng. Vi kan bruke toString () Metode på en matrise, som vil konvertere matrisen til en streng og deretter sammenligne strengen med den andre strengen.
const array1 = [1, 2, 3];I koden ovenfor initialiserte vi tre matriser og deretter brukte vi toString () Metode på matriser og sammenlignet først array1 til Array2 og returnerte resultatet i konsollen. På samme måte sammenlignet vi Array1 med Array3 og konsolllogg resultatet:
Fra output ovenfor kan vi se at "Array1" er lik "Array2", men "Array1" er ikke lik "Array3".
Metode 2: Bruker for loop
La oss gå gjennom en annen metode der vi manuelt vil sjekke elementene i to matriser og deretter generere en utgang. For dette formålet, la meg vise deg koden først:
funksjon sammenligning ()I koden ovenfor har vi definert en funksjon der vi initialiserte to matriser først. Etterpå setter vi en betingelse for å sjekke lengden på matriserne.
Hvis de to matrisens lengde ikke er lik, betyr det at de to matriser er forskjellige, og derfor vil funksjonen komme tilbake falsk.
Imidlertid, hvis lengden er den samme, har vi satt en for loop der vi vil sjekke hvert element av begge matriser. Hvis til og med ett element ikke er likt, vil det bli returnert, vil bli returnert. Hvis alle elementene i begge matriser blir matchet, vil det returnere sant.
Utgangen fra ovennevnte kode er vist nedenfor:
Hvis vi endrer koden litt ved å tilby to matriser som er like e.g:
funksjon sammenligning ()Følgende utgang vil bli generert:
Konklusjon
Vi kan ikke sammenligne to matriser i JavaScript ved å bruke likestillingsoperatøren == eller === fordi JavaScript -matriser er objekter og derfor er referanse sjekket og ikke verdier. For dette formålet definerte vi to metoder i dette innlegget for å sammenligne matriser. I den første metoden brukte vi den innebygde metoden toString () Der vi konverterte matriser til streng først og deretter sjekket de to returnerte strengene ved hjelp av likestillingsoperatøren. I den andre metoden sjekket vi først manuelt lengden og sammenlignet deretter alle elementene i de to matriser en etter en ved å bruke for -loopen.