6.8 KiB
title | localeTitle |
---|---|
Diff Two Arrays | Diferencia dos matrices |
Recuerda usar Read-Search-Ask
si te atascas. Tratar de emparejar el programa y escribe tu propio código
Explicación del problema:
Verifique dos matrices y devuelva una nueva matriz que contenga solo los elementos que no estén en ninguna de las matrices originales.
Enlaces relevantes
- para Loop (Devdocs)
- Array.prototype.includes (Devdocs)
- Array.prototype.filter (Devdocs)
- Array.prototype.concat (Devdocs)
Sugerencia: 1
Combine la lista para facilitar la comparación de funciones.
intenta resolver el problema ahora
Sugerencia: 2
Utilice el filtro para obtener la nueva matriz, tendrá que crear una función de devolución de llamada.
intenta resolver el problema ahora
Sugerencia: 3
La mejor manera de realizar la función de devolución de llamada es verificar si el número de la nueva matriz combinada no se encuentra en ambas matrices originales y devolverlo.
intenta resolver el problema ahora
¡Alerta de spoiler!
¡Solución por delante!
Solución de código básico (Solución imperativa):
function diffArray(arr1, arr2) {
var newArr = [];
function onlyInFirst(first, second) {
// Looping through an array to find elements that don't exist in another array
for (var i=0;i<first.length;i++) {
if (second.indexOf(first[i]) === -1) {
// Pushing the elements unique to first to newArr
newArr.push(first[i]);
}
}
}
onlyInFirst(arr1, arr2);
onlyInFirst(arr2, arr1);
return newArr;
}
diffArray([1, 2, 3, 5], [1, 2, 3, 4, 5]);
Explicación del código:
Lee los comentarios en el código.
Enlaces relevantes
Solución de código intermedio (Solución declarativa):
function diffArray(arr1, arr2) {
return arr1
.concat(arr2)
.filter(
item => !arr1.includes(item) || !arr2.includes(item)
)
}
diffArray([1, 2, 3, 5], [1, 2, 3, 4, 5]);
Explicación del código:
Explica la solución aquí y agrega cualquier enlace relevante.
Enlaces relevantes
- Array.prototype.concat (Devdocs)
- Array.prototype.filter (Devdocs)
- Array.prototype.includes (Devdocs)
Solución de código avanzada (solución declarativa):
function diffArray(arr1, arr2) {
return arr1
.filter(el => !arr2.includes(el))
.concat(
arr2.filter(el => !arr1.includes(el))
)
}
diffArray([1, 2, 3, 5], [1, 2, 3, 4, 5]);
Explicación del código:
Explica la solución aquí y agrega cualquier enlace relevante.
Solución alternativa de código avanzado (solución declarativa):
function diffArray(arr1, arr2) {
return [
...diff(arr1, arr2),
...diff(arr2, arr1)
]
function diff(a, b) {
return a.filter(item => b.indexOf(item) === -1);
}
}
Enlaces relevantes
- Array.prototype.includes (Devdocs)
- Array.prototype.filter (Devdocs)
- Array.prototype.concat (Devdocs)
NOTAS PARA LAS CONTRIBUCIONES:
- NO agregue soluciones que sean similares a las soluciones existentes. Si cree que es similar pero mejor , intente fusionar (o reemplazar) la solución similar existente.
- Agregue una explicación de su solución.
- Categorice la solución en una de las siguientes categorías: Básica , Intermedia y Avanzada .
- Agregue su nombre de usuario solo si ha agregado algún contenido principal relevante . ( NO elimine ningún nombre de usuario existente )
Ver
Wiki Challenge Solution Template
para referencia.