使用lodash方法flatten和find在json对象中查找值

时间:2015-03-17 02:20:03

标签: lodash

使用lodash我想找一个ID为3229的团队。我试过跟随但是没有返回任何东西。

    var team = _.chain(data.teams)
        .flatten("divisionTeams")
        .find({"id":3229})
        .value();

这是我的plunker代码。

http://plnkr.co/edit/UDwzRkX3zkYjyf8UwO7I

有关Json数据,请参阅Plunker中的文件data.js。

请注意我无法更改json数据,因为我正在调用测试API。

2 个答案:

答案 0 :(得分:8)

flatten没有采用该论点,请参阅docs。您需要mappluck divisionTeams

_.chain(data.teams)
.pluck('divisionTeams')
.flatten()
.find({id: 3232})
.value();

答案 1 :(得分:0)

因此,如果要求仅使用flatten,find和lodash,那将会很困难。但是使用for循环来获得分部团队可能就是你所要求的。

var teams = [];
  for(var e of data.teams) {
    teams.push(e.divisionTeams);
  }
  var blah = _.flatten(teams, true);
  console.log(_.find(blah, function(item) { return item.id == 3222; }));