Cómo comparar dos arrays en JavaScript

Rupam Yadav 12 octubre 2023
  1. Array.prototype.equals para comparar dos arrays en JavaScript
  2. JSON.stringify() para comparar matrices en JavaScript
  3. Comparar dos arrays en JavaScript usando bucles
Cómo comparar dos arrays en JavaScript

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 Yadav avatar Rupam Yadav avatar

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

Artículo relacionado - JavaScript Array