Cómo comparar dos matrices en JavaScript

Cómo comparar dos matrices en JavaScript
Para comparar dos variables en JavaScript, utilizamos el operador de igualdad que es de dos tipos. El primero es el doble es igual a "==" que verifica dos valores de operandos y el segundo es que el triple es igual a "===" que verifica el valor, así como el tipo de datos de los operandos.

Sin embargo, no podemos usar el operador de igualdad para comparar las matrices. La razón detrás de esto es que JavaScript Array es un tipo de objeto y los objetos se comparan en función de las referencias de las variables y no en los valores.

const array1 = [1, 2, 3];
const array2 = [1, 2, 3];
consola.log (array1 === Array2); // FALSO
consola.log (array1 == array2); // FALSO

En el código anterior, hemos inicializado dos matrices que son las mismas. Sin embargo, en la salida veremos FALSO:

Por lo tanto, para resolver este problema, en esta publicación, aprenderemos un par de formas de comparar dos matrices en JavaScript.

Método 1: toString ()

El Encadenar() El método es un método incorporado de JavaScript que convierte cualquier tipo de datos como Integer en una cadena y luego devuelve ese número entero como una cadena. Podemos aplicar el Encadenar() método en una matriz, que convertirá la matriz en una cadena y luego comparará la cadena con la otra cadena.

const array1 = [1, 2, 3];
const array2 = [1, 2, 3];
const arrey3 = [4, 5, 6];
consola.Log (Array1.toString () == Array2.Encadenar()); // verdadero
consola.Log (Array1.toString () === Array3.Encadenar()); // FALSO

En el código anterior, inicializamos tres matrices y luego aplicamos el Encadenar() método en las matrices y primero comparó la matriz1 con la matriz2 y devolvió el resultado en la consola. De la misma manera, comparamos Array1 con Array3 y registra la consola el resultado:

De la salida anterior, podemos ver que "Array1" es igual a "Array2" pero "Array1" no es igual a "Array3".

Método 2: usando para bucle

Pasemos por otro método en el que verificaremos manualmente los elementos de dos matrices y luego generaremos una salida. Para este propósito, déjame mostrarte el código primero:

funciones compararrays ()
const array1 = [1, 2, 3];
const array2 = [4, 5, 6];
// Primero, verifique la longitud de ambas matrices
// Si la longitud no es igual, entonces las matrices son diferentes
if (array1.longitud!= Array2.longitud)
falso retorno";
demás
// verifique cada elemento de las dos matrices
para (var i = 0; iif (array1 [i]!= array2 [i])
falso retorno";
devolver "verdadero";


consola.log (compararrays ()); // FALSO

En el código anterior, hemos definido una función en la que primero inicializamos dos matrices. Posteriormente, establecemos una condición para verificar la longitud de las matrices.

Si la longitud de las dos matrices no es igual, eso significa que las dos matrices son diferentes, por lo tanto, la función devolverá falso.

Sin embargo, si la longitud es la misma, entonces hemos establecido un bucle for donde veremos cada elemento de ambas matrices. Si incluso un elemento no es igual, entonces se devolverá falso. Si todos los elementos de ambas matrices coinciden, entonces devolverá verdadero.

La salida del código anterior se muestra a continuación:

Si cambiamos un poco el código proporcionando dos matrices que son iguales.gramo:

funciones compararrays ()
const array1 = [1, 2, 3];
const array2 = [1, 2, 3];
// verificar la longitud de ambas matrices
// Si la longitud no es igual, entonces las matrices son diferentes
if (array1.longitud!= Array2.longitud)
falso retorno";
demás
// verifique cada elemento de las dos matrices
para (var i = 0; iif (array1 [i]!= array2 [i])
falso retorno";
devolver "verdadero";


consola.log (compararrays ()); // verdadero

Se generará la siguiente salida:

Conclusión

No podemos comparar dos matrices en JavaScript usando el operador de igualdad == OR === porque las matrices de JavaScript son objetos y, por lo tanto, se verifica la referencia y no se verifica los valores. Para este propósito, definimos dos métodos en esta publicación para comparar matrices. En el primer método, utilizamos el método incorporado Encadenar() donde convertimos las matrices en cadena primero y luego verificamos las dos cadenas devueltas usando el operador de igualdad. En el segundo método, primero verificamos manualmente la longitud y luego comparamos todos los elementos de las dos matrices una por una usando el bucle for For.