繁体   English   中英

使用lodash从数组中的内部数组检索元素

[英]Retrieve element from inner array in array using lodash

例如,当使用嵌套lodash查找时,是否可以从数组的内部数组中检索元素?

我有一组数组,其中每个元素都有一组孩子。 所有孩子都有唯一的ID(即使在组之间也是如此)。 我需要抓住一个ID == value的孩子,现在我正在做以下事情:

  1. 首先,我检索所需的组:

    var group = _(groups).find(g => {return _(g.children).find(c => {return c.id == value})});

  2. 然后我得到孩子:

    var child = _(group.children).find(c => {return c.id == value});

有没有更有效,更优雅的方法来实现这一目标?

儿童分组,从结果中查找

_(groups)
    .flatMap('children')
    .find({id: value})
    .value();

使用map()和filter()还有另一种方法

var filteredArray = [];

_.map(group, function(groupValue) {
  var groupChildren = groupValue.children;
  var filteredChild = _.filter(groupChildren, function(child) {
    return child.id = value
  });
   if(filteredChild.length != 0) {
     filteredArray.push(filteredChild[0]);
     return groupValue;
   } else {
     return groupValue;
   }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM