【发布时间】:2016-10-28 14:28:14
【问题描述】:
我有一个这样格式的对象数组:
var full_list = [
{
"pid": 1,
"items":[
{"item_id": '9'},
{"item_id": '10'},
{"item_id": '12'}
]
},
{
"pid": 2,
"items":[
{"item_id": '33'},
{"item_id": '22'},
{"item_id": '65'}
]
}...
];
我有一个 tmp 数组,它由完整数组中的对象组成:
var tmp_list = [
{
"pid": 2,
"items":[
{"item_id": '33'},
{"item_id": '22'},
{"item_id": '65'}
]
}, {....}
我想从完整列表中过滤掉至少有一个 selectedIDs 值出现在对象的项目的 id 数组中的对象
var selectedIDs = {'1', '9', '45', ....};
然后将它们添加到 tmp 列表中。
我尝试使用过滤器,但未能完全弄清楚。
谢谢。
selectedIDs.forEach(function(id) {
var tmp = full_list.filter(function (obj) {
obj.items.forEach(function (item) {
if (item.id === id) {
console.log('found');
}
});
});
tmp_list.push(tmp);
});
【问题讨论】:
-
您可以选择使用 lodash 等库吗?诸如此类的问题已经很好地解决了。
-
临时列表中是否可能已经存在一些?如果是这样,当前的答案会产生重复
标签: javascript arrays filter