javascript - 使用 $.grep 如何使用另一个数组作为过滤源来过滤一个数组

标签 javascript jquery json

我正在尝试将过滤器应用于 JSON 数组,并使用另一个数组作为我的过滤器源。最有效的方法是什么?

这是我的代码:我的目标是提取员工数组中员工 ID 与 employeeFilter 数组中相同的所有元素。类似SQL,employeeId in (1,2)。

var employees = [{
    id: 1,
    name: "john"
}, {
    id: 2,
    name: "paul"
}, {
    id: 3,
    name: "mary"
}];

var employeeFilter = [1, 2];

emps = $.grep(employees, function (value, i) {
    for (j = 0; j < employeeFilter.length; j++) {
        return (value.id == employeeFilter[j]); // not working
    }
});

最佳答案

最有效的可能是根本不使用 jQuery,而是像 Array.filter

var employees = [{
    id: 1,
    name: "john"
}, {
    id: 2,
    name: "paul"
}, {
    id: 3,
    name: "mary"
}];

var employeeFilter = [1, 2];

var emps = employees.filter(function(employee) {
    return employeeFilter.indexOf(employee.id) != -1;
});

FIDDLE

关于javascript - 使用 $.grep 如何使用另一个数组作为过滤源来过滤一个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25503060/

相关文章:

javascript - 如何用js注入(inject)改变html的样式?

javascript - 使用 .toUpperCase 和 .slice 将第一个字母大写不起作用

jquery - 在浏览器调整大小时调整 div 大小

javascript - 在 Web Api Controller 中将 JSON 反序列化为字典

java - Spring webflux : how to use custom jackson ObjectWriter in ResponseEntityResultHandler?

c# - 从 Web 方法动态返回字段

javascript - HTML Select 中的排序选项

javascript - HTML表格使用id获取特定的表格行

javascript - touchenter 事件未被调用

javascript - IE 6 7 不显示弹出窗口的问题,它在其他 brwsrs 中工作正常