过滤两个不同的结构化数组下划线js

时间:2014-02-07 01:24:08

标签: javascript arrays underscore.js

我有两个数组:

array1 = [{Name: 'abc', ID: 23},{Name:'xyz', ID: 10},{Name:'def', ID: 12}];
array2 = [10,23];

结果数组应该是数组1的一部分,其数组ID与array2的内容相交。

此处的结果为result = [{Name: 'abc', ID: 23},{Name: 'xyz', ID:10}];

我是如何使用下划线js实现这一目标的?

2 个答案:

答案 0 :(得分:3)

_.filter(array1, function(item){ return _.contains(array2, item.ID); });

您可以使用filtercontains

试用here

答案 1 :(得分:1)

假设您的ID是唯一的:

var groupedById = _.indexBy(array1, "ID");
var filteredArray = _.map(array2, function (lookupId) {
    return groupedById[lookupId];
});