2016-11-21 52 views
1

使用嵌套的lodash查找时,有没有办法从数组中的内部数组检索元素?使用lodash从数组中的内部数组检索元素

我有一个组数组,其中的每个元素都有一组子组。所有的孩子都有独特的身份证(甚至在团体之间)。 我需要获得ID ==价值孩子保持和我现在做了以下内容:

  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});

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

+0

为什么lodash的另一种方式找到?原生JavaScript(filter(),map()等)是不够的? –

+0

不知道,我们只是在我们的项目中使用它:-) – Nat

回答

4

平群体儿童和结果

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

有一个这样使用地图()和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; 
    } 
});