【发布时间】:2019-02-11 19:05:53
【问题描述】:
我有一个包含未知深度对象的数组,像这样
var objects = [{
id: 1,
name: 'foo'
}, {
id: 2,
name: 'bar',
childs: [{
id: 3,
name: 'baz',
childs: [{
id: 4,
name: 'foobar'
}]
}]
}];
我希望能够通过它的 id 过滤特定的子对象。
目前我正在使用这个小 lodash 脚本(引用自 this question),但它仅适用于不超过一层的对象。因此,搜索 id: 1 和 id: 2 可以正常工作,而搜索 id: 3 或 id: 4 将返回 undefined。
function deepFilter(obj, search) {
return _(obj)
.thru(function(coll) {
return _.union(coll, _.map(coll, 'children'));
})
.flatten()
.find(search);
}
【问题讨论】:
-
你想得到带有质疑
id的对象吗? -
是的,这正是我想要实现的目标
标签: javascript recursion multidimensional-array filter lodash