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

Find a value in json object using lodash methods flatten and find

我想使用 lodash 找到一个 ID 为 3229 的团队。我尝试关注但没有返回任何内容。

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

这是我的插件代码。

http://plnkr.co/edit/UDwzRkX3zkYjyf8UwO7I

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

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

flatten 不接受该论点,参见 docs。您需要 mappluck divisionTeams.

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

所以如果要求只使用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; }));