En mi caso, la búsqueda debe pasar por los primeros [1] elementos de los arreglos anidados. Agregué un bucle a través de los elementos de la matriz de la respuesta , pero no puedo agregar las matrices encontradas a la matriz.
function massivs() { let array = [['a', 'mango', 'b','c'], ['d', 'applemango', 'e','f'],['k', 'mangoapple', 's','r']]; let comp = ['apple', 'mango']; let ans = []; for (let i = 0; i < array.length; i++) { for (el of array[i]) { if (comp.every(y => el.includes(y))) { ans.push(el); } } } console.log(ans); } massivs(); [ 'applemango', 'mangoapple' ] Expected Result [['d', 'applemango', 'e','f'],['k', 'mangoapple', 's','r']]Podrías hacerlo con solo una línea de código:
const array = [['a', 'mango', 'b','c'], ['d', 'applemango', 'e','f'],['k', 'mangoapple', 's','r']]; const comp = ['apple', 'mango']; const result = array.filter(x => comp.every(y => x.some(z => z.includes(y)))); console.log(result);Reemplazar:
ans.push(el)Con:
ans.push(array[i])for of itera los elementos de su matriz, por lo que solo está presionando el elemento de la matriz que está incluido en sus valores de búsqueda, presione toda la matriz si se encuentra en la búsqueda y rompa el ciclo
function massivs() { let array = [['a', 'mango', 'b','c'], ['d', 'applemango', 'e','f'],['k', 'mangoapple', 's','r']]; let comp = ['apple', 'mango']; let ans = []; for (let i = 0; i < array.length; i++) { for (el of array[i]) { if (comp.every(y => el.includes(y))) { ans.push(array[i]); break; } } } console.log(ans); } massivs();