繁体   English   中英

在另一个对象数组中的对象数组中搜索 object

[英]Search for an object inside an array of objects inside another array of objects

对不起,一个令人困惑的标题。 这可能是双重的,但我找不到解决方案。

所以我有一个简化的数组如下所示:

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'}]
},
]

所以我有一个 id,我需要通过它在最深层次上找到 object。 我怎么能那样做? 谢谢

 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;

正如您在 JavaScript 中提到的解决方案,因此以下代码将满足您的要求。 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]);
  }
}

这里 lst 是你的清单。 您可以检查正在运行的JSfiddle链接。

这应该工作`

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 是一个包含 3 个对象的数组。 这些对象中的每一个都有一个键“docs”,其中包含一个包含两个对象的数组。 这些对象每个都有两个键“id”和“title”。 你只需要循环查找你想要的那个。 学习如何遍历 arrays 和对象一开始可能会让人感到困惑,但这是一项基本的编程技能。

数组元素用方括号表示法引用,对象通过点表示法或方括号用引号括起来的键引用。 请参阅代码段中的示例

 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]) } }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM