我有这样的数据结构:
[
{
"name": "AAAA",
"children": [
{"name": "vvv", "id": 3},
{"name": "vvv22", "id": 4}
]
},
{
"name": "BBBB",
"children": [
{"name": "ggg", "id": 5},
{"name": "ggggv22", "id": 6}
]
},
]
我想找到并返回给定身份证的孩子。如何使用Underscore.js实现这一目标?
我目前的实现没有使用下划线:
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;
}
}
}
答案 0 :(得分:18)
children
个键导致
var res = _(data).chain().
pluck('children').
flatten().
findWhere({id: 3}).
value();
答案 1 :(得分:3)
我使用下划线来完成此功能,这将完成您的工作。
var getChild = function(id,data){
var allChildren = _.flatten(_.pluck(data,'children'));
var childWithId = _.find(allChildren,function(child){return child.id == id});
return childWithId;
}
var child = getChild(5,data);
console.log(child);