compare arrays JavaScript

Comparar arrays en JavaScript: referencia, orden y valores

Compara listas de valores primitivos con una regla explícita y evita confundir dos referencias distintas.

Tipo: Guía práctica Lectura: 4 min Actualizado: 2026-11-03
Ejemplo visual para Comparar arrays en JavaScript sin caer en igualdad falsa

Guía y comprobaciones

Igual referencia no significa igual contenido

Dos literales de array diferentes no son el mismo objeto. Por eso [1, 2] === [1, 2] devuelve falso aunque sus elementos se vean iguales. Si dos variables apuntan al mismo array, la comparación de referencia sí es verdadera.

Una comparación ordenada de valores primitivos

La función siguiente exige la misma longitud y compara cada posición con Object.is. Su alcance son listas de valores primitivos; no realiza una comparación recursiva de objetos.

function mismasPosiciones(a, b) {
  if (!Array.isArray(a) || !Array.isArray(b) || a.length !== b.length) {
    return false;
  }
  for (let i = 0; i < a.length; i++) {
    if ((i in a) !== (i in b)) return false;
    if (!Object.is(a[i], b[i])) return false;
  }
  return true;
}
console.log(mismasPosiciones([1, 2], [1, 2])); // true
console.log(mismasPosiciones([1, 2], [2, 1])); // false
console.log(mismasPosiciones([NaN], [NaN])); // true
console.log(mismasPosiciones([0], [-0])); // false

Se comprueba además si existe cada posición para no equiparar un hueco de un array disperso con una posición cuyo valor sea undefined.

Decide si importa el orden

Una lista de pasos o una clasificación suele depender del orden. Un conjunto de etiquetas puede no depender de él. Antes de ordenar y comparar, decide si los duplicados importan: ['a', 'a', 'b'] no equivale a ['a', 'b'] cuando cuentas apariciones. Convertir a Set descartaría esa información.

Para objetos, compara una clave de identidad definida por tu aplicación o utiliza una comparación profunda con un contrato claro. Serializar con JSON.stringify no es una solución universal: transforma u omite ciertos valores y la representación puede depender de cómo se construyeron los objetos.

Qué probar

Incluye listas vacías, distinta longitud, un cambio en la última posición y un duplicado adicional. Si quieres que cero y menos cero sean equivalentes, ajusta la regla de igualdad conscientemente. El nombre de una función de comparación debería reflejar la regla que aplica, no prometer igualdad para cualquier estructura.

Preguntas frecuentes

¿Por qué === da false con dos listas iguales?

Porque compara si son el mismo objeto, no sus elementos.

¿La función sirve para listas de objetos?

No compara sus campos. Decide una clave o una estrategia de igualdad profunda acorde a tus datos.

Documentación oficial

R

Autora de la guia

Redacción de Línea de Código

Publicación independiente de programación y trámites digitales

Guías con ejemplos y referencias oficiales para aprender programación y preparar gestiones digitales. Las solicitudes se completan en el organismo responsable.

Actualizado: 2026-11-03 Politica editorial Correcciones

Por que confiar

Contrastamos fuentes oficiales, actualizamos piezas clave y priorizamos estructura, contexto y enlazado interno por encima del relleno.

Compartir

Guarda o comparte esta guia con el enlace limpio.