Introducción
En este laboratorio, exploraremos cómo comprobar si dos arrays tienen el mismo contenido en JavaScript. Crearemos una función que tome dos arrays y devuelva true si contienen los mismos elementos, independientemente del orden, y false en caso contrario. Utilizaremos una combinación de Set, bucle for...of y Array.prototype.filter() para lograr esta funcionalidad.
Comprobando el contenido igual en arrays
Para comprobar si dos arrays contienen los mismos elementos, independientemente del orden, siga estos pasos:
- Abra la Terminal/SSH y escriba
node. - Utilice un bucle
for...ofsobre unSetcreado a partir de los valores de ambos arrays. - Utilice
Array.prototype.filter()para comparar la cantidad de ocurrencias de cada valor distinto en ambos arrays. - Devuelva
falsesi las cantidades no coinciden para ningún elemento,trueen caso contrario.
Aquí está el código correspondiente:
const haveSameContents = (a, b) => {
for (const v of new Set([...a, ...b]))
if (a.filter((e) => e === v).length !== b.filter((e) => e === v).length)
return false;
return true;
};
Para probar la función, utilice el siguiente código:
haveSameContents([1, 2, 4], [2, 4, 1]); // true
Resumen
¡Felicitaciones! Has completado el laboratorio Comprobar si los arrays tienen el mismo contenido. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.