lodash - 通过JSON

时间:2016-01-30 19:49:44

标签: javascript json lodash

我有一个嵌套的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,event:xyz)对象。我知道我可以使用.get(jsonObj,'periods [1] .halfs [0] .events'));得到他的数据,但这需要我循环N次。有没有办法可以用最少的循环获得所有对象?

1 个答案:

答案 0 :(得分:3)

没有_.flatMap:

q=title:BLÅBÆRISOMMEREN~1

对于4.0.0及更高版本:

var events = _.flatten(_.map(data.periods,function(p){
  return _.flatten(_.map(p.halfs,function(h){
    return h.events;
  }));
}));