我有一个嵌套的 JSON 对象,看起来与此类似:
{
"data": {
"periods": [
{
"number": 0,
"halfs": [
{
"half": 1,
"events": [
{
"event": "abc"
....
},
{
"event": "xyz"
...
}
]
},
{
"half": 2,
"events": [
{
"event": "abc"
....
},
{
"event": "xyz"
...
}
]
}
]
},
{
"number": 2,
"halfs": [
{
"half": 1,
"events": [
{
"event": "abc"
....
},
{
"event": "xyz"
...
}
]
}
]
}
]
}
我正在尝试使用 lodash 提取所有事件对象(事件:abc、事件:xyz)对象。我知道我可以使用 .get(jsonObj, 'periods[1].halfs[0].events'));获取他的数据,但这需要我循环 N 次。有没有一种方法可以用最少的循环获取所有对象?
最佳答案
没有_.flatMap:
var events = _.flatten(_.map(data.periods,function(p){
return _.flatten(_.map(p.halfs,function(h){
return h.events;
}));
}));
对于 4.0.0 及以上版本:
var events = _.flatMap(data.periods,function(p){
return _.flatMap(p.halfs,function(h){
return h.events;
}));
}));
关于javascript - lodash - 通过 JSON 进行嵌套搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35106322/