Pregunta: Tengo esta matriz que tiene una matriz anidada que quiero recorrer para encontrar un valor específico.
arr = [['123456','234567'], ['345678']]; specificValue = '123456';El resultado que quiero es averiguar si hay un valor igual a un valor específico y devolver este valor.
Lo intenté
arr.filter(id => id === specificValue);Gracias por la ayuda
Prueba este código
const arr = [['123456','234567'], ['345678']]; const result = arr.flat(Infinity).find(val => val === "123456"); console.log(result);Puede obtener más información sobre el método array.flat() aquí https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/flat
Sigamos adelante con tu intento.
El problema es que su matriz está anidada, por lo que array.filter no funcionará
Use array.flat con array.filter :
let arr = [['123456','234567'], ['345678']]; let specificValue = '123456'; console.log(arr.flat().filter(i=>i==specificValue))Dado que flat () toma una profundidad como argumento, para poder buscar en un número indefinido de matrices anidadas, puede probar la buena recursividad:
const findRecursive = (array, target) => { for (let i = 0; i < array.length; i++) { if (array[i] === target) { return array[i]; } else if (Array.isArray(array[i])) { return findRecursive(array[i], target); } } } console.log(findRecursive(arr, specificValue));