Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/462.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Lodash-搜索嵌套数组和返回对象_Javascript_Lodash - Fatal编程技术网

Javascript Lodash-搜索嵌套数组和返回对象

Javascript Lodash-搜索嵌套数组和返回对象,javascript,lodash,Javascript,Lodash,我使用Lodash搜索嵌套数组,并希望在找到匹配项时返回该对象 对于每个对象,搜索总线4。如果找到,则返回对象(在本例中为“xyz”) var学校=[ { “id”:1, “学校”:“abc”, “巴士”:[ { “id”:1, “名称”:“第一总线” }, { “id”:2, “名称”:“第二总线” } ] }, { “id”:2, “学校”:“xyz”, “巴士”:[ { “id”:3, “名称”:“第三总线” }, { “id”:4, “名称”:“第四辆公共汽车”

我使用Lodash搜索嵌套数组,并希望在找到匹配项时返回该对象

对于每个对象,搜索总线4。如果找到,则返回对象(在本例中为“xyz”)

var学校=[
{  
“id”:1,
“学校”:“abc”,
“巴士”:[
{  
“id”:1,
“名称”:“第一总线”
},
{  
“id”:2,
“名称”:“第二总线”
}
]
},
{  
“id”:2,
“学校”:“xyz”,
“巴士”:[
{  
“id”:3,
“名称”:“第三总线”
},
{  
“id”:4,
“名称”:“第四辆公共汽车”
}
]
}
]
以下是我目前掌握的情况:

_.forEach(schools, function(school){console.log(_.where(school.bus, {'id':4}))})

只是说说结果。这类工作。

首先我们应该决定使用什么函数。筛选器适合我们的情况,因为我们希望返回通过评估的内容

困难的部分是制定评估。lodash确实支持通过嵌套数组进行搜索,一旦您了解了它,语法实际上是非常直观的

_.filter(schools,
  {
    bus: [{id: 4}]
  }
);
相反,如果总线不是一个数组,在这种情况下它将是

_.filter(schools,
  {
    bus: {id: 4}
  }
);

警告:筛选器将始终返回一个数组,因此如果您只需要对象,请确保向其附加[0]

你的第一次尝试请。我实际上已经写了答案,但我决定删除它。。。这并不难,请尝试:)@Kossel你和我在这里帮助人们,而不是做任何事情。太棒了,谢谢罗伯特。同时也感谢你把自鸣得意留在门口:)嗨,我用了这个功能。当我搜索{u.filter(保险主数据,{child:{id:35},{id:36}}})时,它返回我[{id:123,child:[{id:34},{id:35}];但我只知道子数组中具有机器id的特定对象,而不是整个数组。除了自定义循环之外还有什么建议吗?如果我们必须根据名称进行搜索怎么办?比如,如果我把一个字符放在“a”上,它应该返回名称中包含a的所有对象。只要我输入它,就给我具体的结果。