Como comparar duas matrizes em JavaScript

Como comparar duas matrizes em JavaScript
Para comparar duas variáveis ​​no JavaScript, usamos o operador de igualdade, que é de dois tipos. O primeiro é o duplo é igual a "==" que verifica dois valores de operandos e o segundo é o triplo é igual a "===", que verifica o valor e o tipo de dados dos operandos.

No entanto, não podemos usar o operador de igualdade para comparar as matrizes. A razão por trás disso é que a matriz JavaScript é um tipo de objeto e os objetos são comparados com base nas referências das variáveis ​​e não nos valores.

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

No código acima, inicializamos duas matrizes que são iguais. No entanto, na saída, veremos falso:

Portanto, para resolver esse problema, neste post, aprenderemos algumas maneiras de comparar duas matrizes em JavaScript.

Método 1: ToString ()

O para sequenciar() O método é um método embutido de JavaScript que converte qualquer tipo de dados como o número inteiro em uma string e depois retorna esse número inteiro como uma string. Podemos aplicar o para sequenciar() Método em uma matriz, que converterá a matriz em uma string e depois comparará a string com a outra string.

const array1 = [1, 2, 3];
const array2 = [1, 2, 3];
const array3 = [4, 5, 6];
console.log (Array1.tostring () == Array2.para sequenciar()); // verdadeiro
console.log (Array1.tostring () === Array3.para sequenciar()); // false

No código acima, inicializamos três matrizes e depois aplicamos o para sequenciar() Método nas matrizes e primeiro comparou o Array1 ao Array2 e retornou o resultado no console. Da mesma maneira, comparamos o Array1 com o Array3 e o Console Log o resultado:

Da saída acima, podemos ver que "Array1" é igual a "Array2", mas "Array1" não é igual a "Array3".

Método 2: Usando para Loop

Vamos passar por outro método em que verificaremos manualmente os elementos de duas matrizes e depois geraremos uma saída. Para esse fim, deixe -me mostrar o código primeiro:

Função comparaRrays ()
const array1 = [1, 2, 3];
const array2 = [4, 5, 6];
// Primeiro, verifique o comprimento de ambas as matrizes
// Se o comprimento não for igual, as matrizes são diferentes
if (Array1.comprimento!= Array2.comprimento)
retorna falso";
outro
// Verifique todos os elementos das duas matrizes
para (var i = 0; iIf (Array1 [i]!= Array2 [i])
retorna falso";
retornar "true";


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

No código acima, definimos uma função em que inicializamos duas matrizes primeiro. Depois, definimos uma condição para verificar o comprimento das matrizes.

Se o comprimento das duas matrizes não for igual, isso significa que as duas matrizes são diferentes, portanto, a função retornará falsa.

No entanto, se o comprimento for o mesmo, então definimos um loop para verificar todos os elementos de ambos os matrizes. Se mesmo um elemento não for igual, o falso será devolvido. Se todos os elementos de ambas as matrizes forem correspondidos, ela retornará verdadeiro.

A saída do código acima é mostrada abaixo:

Se alterarmos um pouco o código, fornecendo duas matrizes iguais e.G:

Função comparaRrays ()
const array1 = [1, 2, 3];
const array2 = [1, 2, 3];
// Verifique o comprimento de ambas as matrizes
// Se o comprimento não é igual, então as matrizes são diferentes
if (Array1.comprimento!= Array2.comprimento)
retorna falso";
outro
// Verifique todos os elementos das duas matrizes
para (var i = 0; iIf (Array1 [i]!= Array2 [i])
retorna falso";
retornar "true";


console.log (comparearRrays ()); // verdadeiro

A seguinte saída será gerada:

Conclusão

Não podemos comparar duas matrizes em JavaScript usando o operador da igualdade == ou === porque as matrizes JavaScript são objetos e, portanto, a referência é verificada e não os valores. Para esse fim, definimos dois métodos nesta postagem para comparar matrizes. No primeiro método, usamos o método interno para sequenciar() onde convertemos as matrizes para cordas primeiro e depois verificamos as duas cordas retornadas usando o operador de igualdade. No segundo método, primeiro verificamos manualmente o comprimento e depois comparamos todos os elementos das duas matrizes, uma por uma usando o loop for.