¿Cómo puedo iterar este objeto y sus propiedades que tienen matrices, para encontrar una palabra que está dentro de la matriz, por ejemplo, latidos?
[ { mouse: 'lenovo', teclado: 'dell', monitor: 'hp', headset: ['audioTechnica', 'klipXtreme', 'beats'] }, { mouse: 'razor', teclado: 'think pad', monitor: 'lg', headset: ['random', 'hyperx', 'jbl'] }, { mouse: 'technet', teclado: 'red dragon', monitor: 'benq', headset: ['sony', 'senheiser', 'toshiba'] } ]Desea encontrar un objeto en esta matriz, qué propiedades tienen alguna cadena, ¿correcto?
Si eso es lo que está buscando, aquí hay un consejo rápido: debe iterar sobre la matriz (tal vez, usando "buscar") y luego, para cada objeto, iterar sobre sus accesorios, y luego verificar si tiene una cadena que está buscando.
Ejemplo de implementación:
let searchPhrase = 'razor'; array.find(item => { Object.keys(item).find(key => typeof item[key] === 'string' ? item[key] === searchPhrase : item[key].includes(searchPhrase) ) )Tenga en cuenta que este código se basa en el hecho de que las propiedades del objeto son solo una cadena o una matriz. Si no está seguro de ese hecho, se requieren algunas verificaciones adicionales.
Puede usar la recursividad para atravesar todos los niveles de objeto:
const trav = (obj) => { if (obj instanceof Array) { obj.forEach(item => trav(item)) } else if (typeof obj === "object") { Object.keys(obj).forEach(key => { trav(obj[key]) }) } else if(typeof obj === "string"){ if(obj === "beats") { console.log('Find it') } } }