Javascript Lodash-搜索嵌套数组和返回对象
我使用Lodash搜索嵌套数组,并希望在找到匹配项时返回该对象 对于每个对象,搜索总线4。如果找到,则返回对象(在本例中为“xyz”)Javascript Lodash-搜索嵌套数组和返回对象,javascript,lodash,Javascript,Lodash,我使用Lodash搜索嵌套数组,并希望在找到匹配项时返回该对象 对于每个对象,搜索总线4。如果找到,则返回对象(在本例中为“xyz”) var学校=[ { “id”:1, “学校”:“abc”, “巴士”:[ { “id”:1, “名称”:“第一总线” }, { “id”:2, “名称”:“第二总线” } ] }, { “id”:2, “学校”:“xyz”, “巴士”:[ { “id”:3, “名称”:“第三总线” }, { “id”:4, “名称”:“第四辆公共汽车”
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的所有对象。只要我输入它,就给我具体的结果。