Come confrontare due array in JavaScript

Come confrontare due array in JavaScript
Per confrontare due variabili in JavaScript utilizziamo l'operatore di uguaglianza che è di due tipi. Il primo è il doppio uguale a "==" che controlla due valori di operandi e il secondo è la tripla uguale a "===" che controlla il valore e il tipo di dati degli operandi.

Tuttavia, non possiamo utilizzare l'operatore di uguaglianza per confrontare gli array. Il motivo alla base di questo è che l'array JavaScript è un tipo di oggetto e gli oggetti vengono confrontati in base ai riferimenti delle variabili e non ai valori.

const array1 = [1, 2, 3];
const array2 = [1, 2, 3];
console.log (array1 === array2); // false
console.log (array1 == array2); // false

Nel codice sopra, abbiamo inizializzato due array che sono gli stessi. Tuttavia, nell'output vedremo falso:

Quindi per risolvere questo problema, in questo post, impareremo un paio di modi per confrontare due array in JavaScript.

Metodo 1: toString ()

IL accordare() Il metodo è un metodo integrata di JavaScript che converte qualsiasi tipo di dati come intero in una stringa e quindi restituisce quel numero intero come stringa. Possiamo applicare il accordare() Metodo su un array, che convertirà l'array in una stringa e quindi confronterà la stringa con l'altra stringa.

const array1 = [1, 2, 3];
const array2 = [1, 2, 3];
const array3 = [4, 5, 6];
console.registro (array1.toString () == array2.accordare()); // VERO
console.registro (array1.toString () === Array3.accordare()); // false

Nel codice sopra, abbiamo inizializzato tre array e quindi abbiamo applicato il accordare() Metodo sugli array e prima ha confrontato l'Array1 con Array2 e ha restituito il risultato nella console. Allo stesso modo, abbiamo confrontato Array1 con Array3 e Console Log del risultato:

Dall'output sopra, possiamo vedere che "Array1" è uguale a "Array2" ma "Array1" non è uguale a "Array3".

Metodo 2: usando per loop

Passiamo attraverso un altro metodo in cui controllare manualmente gli elementi di due array e quindi generare un output. A questo scopo, lascia che ti mostri prima il codice:

funzione compararays ()
const array1 = [1, 2, 3];
const array2 = [4, 5, 6];
// Innanzitutto, controlla la lunghezza di entrambi gli array
// Se la lunghezza non è uguale, allora gli array sono diversi
if (array1.lunghezza!= Array2.lunghezza)
restituire "false";
altro
// Controlla ogni elemento dei due array
per (var i = 0; iif (array1 [i]!= array2 [i])
restituire "false";
restituire "vero";


console.log (comparaRrays ()); // false

Nel codice sopra, abbiamo definito una funzione in cui abbiamo inizialmente inizializzato due array. Successivamente, impostiamo una condizione per verificare la lunghezza degli array.

Se la lunghezza dei due array non è uguale, ciò significa che i due array sono diversi, quindi la funzione restituirà false.

Tuttavia, se la lunghezza è la stessa, allora abbiamo impostato un ciclo per controllare ogni elemento di entrambi gli array. Se anche un elemento non è uguale, verrà restituito falso. Se tutti gli elementi di entrambi i due array sono abbinati, restituirà vero.

L'output del codice sopra è mostrato di seguito:

Se cambiamo un po 'il codice fornendo due array uguali e.G:

funzione compararays ()
const array1 = [1, 2, 3];
const array2 = [1, 2, 3];
// Controlla la lunghezza di entrambi gli array
// se la lunghezza non è uguale, gli array sono diversi
if (array1.lunghezza!= Array2.lunghezza)
restituire "false";
altro
// Controlla ogni elemento dei due array
per (var i = 0; iif (array1 [i]!= array2 [i])
restituire "false";
restituire "vero";


console.log (comparaRrays ()); // VERO

Verrà generato il seguente output:

Conclusione

Non possiamo confrontare due array in JavaScript usando l'operatore di uguaglianza == o === perché gli array JavaScript sono oggetti e quindi il riferimento è controllato e non valori. A tale scopo, abbiamo definito due metodi in questo post per confrontare gli array. Nel primo metodo, abbiamo usato il metodo integrato accordare() dove abbiamo convertito prima gli array in stringa e quindi controllato le due stringhe restituite usando l'operatore di uguaglianza. Nel secondo metodo, abbiamo prima verificato manualmente la lunghezza e poi abbiamo confrontato tutti gli elementi dei due array uno per uno usando il loop per.