tengo este objeto
let obj = [ {name: 'title 1', values:['test 1', 'test 2']}, {name: 'title 2' values: ['test 3', 'test 4']} ] Quiero buscar valores = 'prueba 3' y devolverá objetos que contengan esa salida de habilidades: {name: 'title 2' values: ['test 3', 'test 4']}
He intentado buscar como obj.find(c=> c.skills) , iteración, etc. pero solo funciona dentro de la matriz de objetos.
Usaría filer para aplicar una condición a los values :
let obj = [ {name: 'title 1', values:['test 1', 'test 2']}, {name: 'title 2', values: ['test 3', 'test 4']} ]; const result = obj.filter(o => o.values.includes('test 3')); console.log(result);Puede encontrar el objeto mirando la matriz con Array#includes .
const objects = [{ name: 'title 1', values: ['test 1', 'test 2'] }, { name: 'title 2', values: ['test 3', 'test 4'] }], value = 'test 3', result = objects.find(({ values }) => values.includes(value)); console.log(result);Usar filter :
let obj = [{ name: 'title 1', values: ['test 1', 'test 2'] }, { name: 'title 2', values: ['test 3', 'test 4'] }]; let skill = 'test 3'; let result = obj.filter(c => c.values.includes(skill)); console.log(result);