我正在使用Lodash搜索嵌套数组,并希望在找到匹配项时返回该对象.
对于每个对象,搜索总线4.如果找到,则返回对象(在本例中为school'xyz').
var schools = [
{
"id":1,
"school":"abc",
"bus":[
{
"id":1,
"name":"first bus"
},
{
"id":2,
"name":"second bus"
}
]
},
{
"id": 2,
"school":"xyz",
"bus":[
{
"id":3,
"name":"third bus"
},
{
"id":4,
"name":"fourth bus"
}
]
}
]
Run Code Online (Sandbox Code Playgroud)
这是我到目前为止所拥有的:
_.forEach(schools, function(school){console.log(_.where(school.bus, {'id':4}))})
Run Code Online (Sandbox Code Playgroud)
只是吐出结果.有点作品.
Rob*_*rey 13
首先,我们应该决定使用什么功能.过滤https://lodash.com/docs#filter符合我们的要求,因为我们想要返回通过评估的内容.
困难的部分是制定评估.lodash确实支持通过嵌套数组进行搜索,一旦你学会了它,语法实际上非常直观.
_.filter(schools,
{
bus: [{id: 4}]
}
);
Run Code Online (Sandbox Code Playgroud)
相反,如果总线不是一个数组,在这种情况下它将是
_.filter(schools,
{
bus: {id: 4}
}
);
Run Code Online (Sandbox Code Playgroud)
警告:过滤器将始终返回一个数组,因此如果您只想要对象,请确保将[0]附加到它.
| 归档时间: |
|
| 查看次数: |
4302 次 |
| 最近记录: |