javascript

JavaScript – Obtener diferencia de arreglos

Resumen

En este post te voy a mostrar a sacar la diferencia entre dos arreglos de JavaScript. Es decir, obtener los elementos que existen en un arreglo A pero no existen en otro arreglo B.

La función que te voy a mostrar va a regresar un nuevo arreglo que tiene los elementos que hay en A pero no en B.

La función que obtiene la diferencia de arreglos

Veamos la siguiente función. En la misma hacemos un filter al arreglo 1, esto es para filtrar los elementos y crear un nuevo arreglo en donde no estén presentes los del arreglo 2.

Para saber si un elemento está dentro de un arreglo usamos indexOf o findIndex si fuera necesario.

See the gist on github.

Vamos avanzando poco a poco. Recordemos que filter va a ignorar el elemento (es decir, lo dejará fuera del nuevo arreglo) si lo que se regrese dentro de la función es false.

Dentro de la función regresamos lo que regrese la siguiente comparación:

arr2.indexOf(elemento) == -1

Ya que indexOf regresa -1 si el elemento no existe.

De esta manera obtenemos los elementos que existen en arr1 pero no en arr2.

Uso de la función

Simplemente invoca a la función con ambos arreglos. Si quieres obtener lo que hay en B pero no en A simplemente invierte los argumentos.

Es decir, en lugar de:

let diferencia = diferenciaDeArreglos(A, B);

Mejor haz un:

let diferencia = diferenciaDeArreglos(B, A);

Recuerda que la función regresa un nuevo arreglo.

Ejemplo

Vamos a ver un ejemplo.

Que quede claro que no soy un experto de videojuegos pero para este ejemplo vamos a suponer que lo que digo es cierto (ya que creo que Luigi sí aparece como personaje en Mario Bros 3 cuando se juega en parejas)

See the gist on github.

La función devuelve un nuevo arreglo que tiene los elementos que están en arr1 pero no en arr2.

Puedes probar el ejemplo aquí.

Extendiendo la función

Si quieres usar arreglos de objetos, o cosas más complejas, simplemente asegúrate de buscar el índice.

Recomiendo usar findIndex cuando no tenemos arreglos de datos primitivos.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Entradas recientes

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

6 días hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

6 días hace

Imprimir PDF generado con HTML

Hoy vamos a ver programar la impresión de un PDF generado a partir de HTML…

1 semana hace

JavaScript: llenar select con arreglo

En este tutorial básico de JavaScript con HTML vamos a ver cómo llenar una lista…

2 semanas hace

Imprimir PDF a partir de URL

En este artículo se presenta una guía para imprimir un PDF a partir de una…

2 semanas hace

Imprimir PDF a partir de base64

En este post voy a enseñarte cómo imprimir un PDF a partir de su representación…

2 semanas hace

Esta web usa cookies.