Comparar duas arrays em JavaScript
-
Array.prototype.equals
para comparar duas arrays em JavaScript -
JSON.stringify()
para comparar arrays em JavaScript - Comparar duas arrays em JavaScript utilizando loops
Este tutorial introduz três formas de comparar arrays em JavaScript. Existem múltiplas formas de o fazer, mas o desempenho pode variar.
Array.prototype.equals
para comparar duas arrays em JavaScript
O JavaScript fornece-nos a capacidade de adicionar novas propriedades e métodos às classes existentes. Podemos utilizar Array.prototype
para adicionar o nosso método personalizado equal
ao objecto Array.
No exemplo abaixo, vamos primeiro verificar o comprimento de ambos os arrays e depois comparar cada item. Estamos também a verificar se a1
e a2
são instâncias de Array
porque se não são, não são idênticas. Finalmente, utilizamos o método para comparar a primeira array com a segunda por a1.equals(a2)
.
Exemplo:
var a1 = [1, 2, 3];
var a2 = [1, 2, 3];
var a3 = [1, 2, 3, 4];
Array.prototype.equals = function(getArray) {
if (this.length != getArray.length) return false;
for (var i = 0; i < getArray.length; i++) {
if (this[i] instanceof Array && getArray[i] instanceof Array) {
if (!this[i].equals(getArray[i])) return false;
} else if (this[i] != getArray[i]) {
return false;
}
}
return true;
};
console.log('Comparing a1 and a2', a1.equals(a2));
console.log('Comparing a1 and a3', a1.equals(a3));
Resultado:
Comparing a1 and a2 true
Comparing a1 and a3 false
JSON.stringify()
para comparar arrays em JavaScript
Outra técnica para comparar duas arrays é primeiro fundi-las com o tipo de cordel e depois compará-las. O JSON
é utilizado para transferir dados de/para um servidor web, mas podemos utilizar o seu método aqui. Podemos fazer isto utilizando JSON.stringify()
que converte um Array
para um string
. Como agora tanto o a1
como o a2
são strings, podemos utilizar ===
para ver se são iguais ou não.
Exemplo:
var a1 = [1, 2, 3];
var a2 = [1, 2, 3];
var a3 = [1, 2, 3, 4];
console.log('Comparing a1 and a2', JSON.stringify(a1) === JSON.stringify(a2));
console.log('Comparing a1 and a3', JSON.stringify(a1) === JSON.stringify(a3));
Resultado:
Comparing a1 and a2 true
Comparing a1 and a3 false
Comparar duas arrays em JavaScript utilizando loops
O looping é a forma mais tradicional de comparar arrays em JavaScript porque envolve looping através das arrays e depois comparar cada elemento entre si para verificar se coincidem.
Para o tornar mais limpo, podemos utilizar funções e depois devolver booleano
como resultado.
Exemplo:
var a1 = [1, 2, 3];
var a2 = [1, 2, 3];
var a3 = [1, 2, 3, 4];
const getResult = function(a1, a2) {
var i = a1.length;
if (i != a2.length) return false;
while (i--) {
if (a1[i] !== a2[i]) return false;
}
return true;
};
console.log('Comparing a1 and a2', getResult(a1, a2));
console.log('Comparing a1 and a3', getResult(a1, a3));
Resultado:
Comparing a1 and a2 true
Comparing a1 and a3 false
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn