Cómo comparar dos arrays en JavaScript
-
Array.prototype.equals
para comparar dos arrays en JavaScript -
JSON.stringify()
para comparar matrices en JavaScript - Comparar dos arrays en JavaScript usando bucles
Este tutorial presenta tres formas de comparar matrices en JavaScript. Hay múltiples formas de hacerlo, pero el rendimiento puede variar.
Array.prototype.equals
para comparar dos arrays en JavaScript
JavaScript nos proporciona la capacidad de añadir nuevas propiedades y métodos a las clases existentes. Podemos usar Array.prototype
para añadir nuestro método personalizado equals
en el objeto Array.
En el siguiente ejemplo, primero comprobaremos la longitud de ambos arrays y luego compararemos cada elemento. También estamos comprobando si a1
y a2
son instancias de Array
porque si no lo son, no son idénticas. Por último, usamos el método para comparar la primera array con la segunda por a1.equals(a2)
.
Ejemplo:
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 matrices en JavaScript
Otra técnica para comparar dos arrays es primero lanzarlos al tipo de cadena y luego compararlos. JSON
se usa para transferir datos desde/hacia un servidor web, pero podemos usar su método aquí. Podemos hacerlo usando JSON.stringify()
que convierte un Array
en una string
. Como ahora tanto la a1
como la a2
son cadenas, podemos usar ===
para ver si son iguales o no.
Ejemplo:
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 dos arrays en JavaScript usando bucles
El bucle es la forma más tradicional de comparar matrices en JavaScript porque implica hacer un bucle a través de los Arrays y luego comparar cada uno de los elementos entre sí para comprobar si coinciden.
Para hacerlo más limpio, podemos usar funciones y luego devolver boolean
como resultado.
Ejemplo:
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