Introducción
En este laboratorio, exploraremos cómo comprobar si una matriz está contenida en otra matriz en JavaScript. Utilizaremos varios métodos de matriz, como for...of, Set, some() y filter(), para escribir una función que pueda determinar si los elementos de la primera matriz están presentes en la segunda matriz, independientemente de su orden. Este laboratorio te ayudará a entender cómo manipular matrices en JavaScript y escribir código eficiente para resolver problemas de programación comunes.
Función para comprobar si una matriz está contenida en otra matriz
Para comenzar a codificar, abre la Terminal/SSH y escribe node. Esta función comprueba si todos los elementos de la primera matriz están presentes en la segunda matriz, independientemente de su orden.
A continuación, se presentan los pasos a seguir:
- Utiliza un bucle
for...ofpara iterar sobre unSetcreado a partir de la primera matriz. - Aplica
Array.prototype.some()para verificar si todos los valores únicos están presentes en la segunda matriz. - Utiliza
Array.prototype.filter()para comparar la cantidad de ocurrencias de cada valor único en ambas matrices. - Si la cantidad de cualquier elemento es mayor en la primera matriz que en la segunda, devuelve
false. Si no, devuelvetrue.
Echa un vistazo al código siguiente para ver cómo funciona:
const isContainedIn = (a, b) => {
for (const v of new Set(a)) {
if (
!b.some((e) => e === v) ||
a.filter((e) => e === v).length > b.filter((e) => e === v).length
)
return false;
}
return true;
};
Para probar la función, utiliza el siguiente código:
isContainedIn([1, 4], [2, 4, 1]); // true
Resumen
¡Felicidades! Has completado el laboratorio de Matriz Contenida en Otra Matriz. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.