说我有一个像这样的对象列表。
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"}]
谢谢 -乔什
答案 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)
您可以使用map
和find
来做到这一点:
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);