使用数组中的值查找对象中的键

时间:2016-08-15 14:30:40

标签: javascript arrays javascript-objects

我有一个通过从列表中选择项目动态创建的数组:

[2, 4]

我还有一个对象数组:

[{id: 1, name: "Param1"}, {id: 2, name: "Param2"}, {id: 3, name: "Param3"}, {id: 4, name: "Param4"}]

我需要做的是使用第一个数组中的值来匹配第二个数组中对象中的id并返回这些对象。

非常感谢帮助

感谢您的时间

1 个答案:

答案 0 :(得分:1)

您可以使用此ES6代码,将第一个数组转换为Set以允许快速查找,然后应用专门用于此目的的数组filter方法:

var select = [2, 4];
var data = [{id: 1, name: "Param1"}, {id: 2, name: "Param2"},
            {id: 3, name: "Param3"}, {id: 4, name: "Param4"}]

var selectSet = new Set(select);
var result = data.filter( obj => selectSet.has(obj.id) );

console.log(result);