我有一个包含某些数字的数组和一个包含某些对象的数组,如下所示:
var names = [
{ id: 1, name: 'Alex'},
{ id: 2, name: 'John'},
{ id: 3, name: 'Mary'}
];
var blocked_ids = [1, 2];
现在我想从名称数组中删除带有blocked_ids 的对象。所以结果是这样的:
[
{ id: 3, name: 'Mary'}
]
正如您所看到的,id 为 1 和 2 的对象消失了,因为数组“blocked_ids”包含这些数字。 如果它只有两个数组,我可以使用 _.difference(),但现在我必须将blocked_ids 与数组对象内的id 进行比较。有人知道该怎么做吗?
最佳答案
假设您给出的block-ids
是一个Id数组,您可以像下面一样使用reject
var arr = [ { id: 1,
name: 'Alex'},
{ id: 2,
name: 'John'},
{ id: 3,
name: 'Mary'}
];
var block_ids = [1,2];
var result = _.reject(arr, function (obj) {
return block_ids.indexOf(obj.id) > -1;
});
console.log(result);
关于javascript - Underscore JS 数组和带对象的数组的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25523657/