Perdón por un título confuso. Esto es posiblemente un doble, pero no pude encontrar una solución.
Así que tengo una matriz que simplificada se vería así:
0:[ { docs: [{id: 1, title: 'title one'}, {id: 2, title: 'title two'}] }, { docs: [{id: 3, title: 'title one'}, {id: 4, title: 'title two'}] }, { docs: [{id: 5, title: 'title one'}, {id: 6, title: 'title two'}] }, ]Entonces tengo una identificación por la cual necesito encontrar el objeto en el nivel más profundo. ¿Cómo podría hacer eso? Gracias
const my_array = [ { docs: [{id: 1, title: 'title one'}, {id: 2, title: 'title two'}] }, { docs: [{id: 3, title: 'title one'}, {id: 4, title: 'title two'}] }, { docs: [{id: 5, title: 'title one'}, {id: 6, title: 'title two'}] }, ] const id = 3;Como mencionó la solución en JavaScript, el siguiente código cumplirá con sus requisitos. Hay soluciones más simplificadas y mejores en Jquery.
var result = []; var id = 3; for(i=0; i < lst.length; i++){ for(j=0; j < lst[i].docs.length; j++){ if(lst[i].docs[j].id == id) result.push(lst[i].docs[j]); } }Aquí está tu lista. Puede verificar la ejecución del enlace JSfiddle .
Esto debería funcionar `
let result; for(let i=0;i<my_array.length;i++) { for(let j=0;j<my_array.length;j++) { if(my_array[i].docs[j].id==id) { result=my_array[i].docs[j]; break; } if(!!result) break; } }`
my_array es una matriz que contiene 3 objetos. cada uno de esos objetos tiene una clave 'docs' que contiene una matriz con dos objetos. Cada uno de esos objetos tiene dos claves 'id' y 'title'. Solo tiene que recorrer para encontrar el que desea. Aprender a recorrer arreglos y objetos puede ser confuso al principio, pero es una habilidad de programación esencial.
los elementos de la matriz se referencian con notación de corchetes y los objetos son referencias mediante notación de puntos o corchetes con las claves entre comillas. ver ejemplo de ambos en el fragmento
const my_array = [ { docs: [{id: 1, title: 'title one'}, {id: 2, title: 'title two'}] }, { docs: [{id: 3, title: 'title one'}, {id: 4, title: 'title two'}] }, { docs: [{id: 5, title: 'title one'}, {id: 6, title: 'title two'}] }, ] const id = 3; for(let i = 0; i < my_array.length; i++){ for(let j = 0; j < my_array[i].docs.length; j++){ if(my_array[i].docs[j].id == 3)console.log(my_array[i].docs[j]) if(my_array[i]['docs'][j]['id'] == 3)console.log(my_array[i]['docs'][j]) } }