首页 > 解决方案 > 检查数组是否包含 id 与 id 列表匹配的对象

问题描述

有没有一种优雅的方法来确定一个数组是否像这样:

[
  {id: 1, value: false},
  {id: 2, value: true},
  {id: 3, value: false},
  {id: 4, value: true},
  {id: 5, value: true}
]

包含一个 id 列在另一个数组中的项目,如下所示:

[1,5]

在这种情况下,应该只返回这些值:

  {id: 1, value: false},
  {id: 5, value: true}

我试图使用includes(),但它不工作:

let array = [
  {id: 1, value: false},
  {id: 2, value: true},
  {id: 3, value: false},
  {id: 4, value: true},
  {id: 5, value: true}
];

array.includes([1,5])

标签: javascriptarrays

解决方案


您可以简单地使用filter组合 withincludes来生成一个新数组,该数组仅id包含包含 in的项目ids

const array = [
  {id: 1, value: false},
  {id: 2, value: true},
  {id: 3, value: false},
  {id: 4, value: true},
  {id: 5, value: true}
];
const ids = [1, 5];

const filteredArray = array.filter((item) => ids.includes(item.id));
console.log(filteredArray);


推荐阅读