javascript - Underscore JS 数组和带对象的数组的区别

标签 javascript arrays underscore.js

我有一个包含某些数字的数组和一个包含某些对象的数组,如下所示:

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);

DEMO

关于javascript - Underscore JS 数组和带对象的数组的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25523657/

相关文章:

javascript - 如何通过一个按钮用数组中的下一个值填充表格

php - 给出警告 : in_array() expects parameter 2 to be array, null

jquery - 使用 jQuery 显示数组中的所有项目

javascript - 使用js对API调用响应进行排序

javascript - 学习 Javascript 的表达能力

javascript - 为什么使用 window.setInterval() 后 window.setTimeout() 会变成循环调用

javascript - 通过javascript发送网页

javascript - 如何使用 setTimeout 设置 this 上下文

javascript - Lodash检查数组是否是对象数组?

javascript - 存储按钮点击次数