从具有ID数组的对象数组中选择对象javascript

时间:2018-07-13 22:54:38

标签: javascript

说我有一个像这样的对象列表。

const list = [{id: 1, name: "foo"}, {id: 2, name: "bar"}, {id: 3, name: "baz"}]

然后我有一个要在所述列表中找到的项目列表。

const ids = [1, 3]

如何使用JavaScript从ids返回与list中的ID相匹配的对象数组?

这是我想看看有[1,3]的回报示例。

-> [{id: 1, name: "foo"}, {id: 3, name: "baz"}]

谢谢 -乔什

2 个答案:

答案 0 :(得分:4)

您可以通过filter方法执行此操作,该方法根据您在其中编写的条件返回新的项目数组。我还建议使用includes方法来检查您的ID数组是否具有以下项:

const list = [{id: 1, name: "foo"}, {id: 2, name: "bar"}, {id: 3, name: "baz"}];
const ids = [1, 3];
const newArr = list.filter(item => ids.includes(item.id));
console.log(newArr);

答案 1 :(得分:0)

您可以使用mapfind来做到这一点:

const list = [{id: 1, name: "foo"}, {id: 2, name: "bar"}, {id: 3, name: "baz"}];
const ids = [1, 3];
const newArr = ids.map(i => list.find(({id}) => i === id));
console.log(newArr);