Underscore.js在嵌套数组中查找并返回元素

MyT*_*tle 4 javascript underscore.js

我有这样的数据结构:

[
    {
        "name": "AAAA",
        "children": [
            {"name": "vvv", "id": 3},
            {"name": "vvv22", "id": 4}
        ]
    },
    {
        "name": "BBBB",
        "children": [
            {"name": "ggg", "id": 5},
            {"name": "ggggv22", "id": 6}
        ]
    },
]
Run Code Online (Sandbox Code Playgroud)

我想找到并返回给定身份证的孩子.如何使用Underscore.js实现这一目标?

我目前的实现没有使用Underscore:

for (var i = 0; i < data.length; i++) {
     var dataItem= data[i];
     for (var j = 0; j < dataItem.children.length; j++) {
        var child = dataItem.children[j];
        if (child .id == id) {
             return child;  
        }
     }
} 
Run Code Online (Sandbox Code Playgroud)

nik*_*shr 18

  1. 摘下children从顶级的对象键
  2. 展平生成的数组
  3. 找到匹配条件的第一个对象,例如具有正确的id
  4. 连锁这些业务

这导致

var res = _(data).chain().
    pluck('children').
    flatten().
    findWhere({id: 3}).
    value();
Run Code Online (Sandbox Code Playgroud)

还有一个演示 去小提琴按钮