javascript - 检查数组是否包含 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])
解决方案
您可以简单地使用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);
推荐阅读
- python - 理解 python 类型:可选、可调用、可迭代,用于在读取 JSON 文件时进行错误处理
- javascript - PokeAPI - 查询额外的口袋妖怪信息
- javascript - 如何在js中引发追加元素
- javascript - MySQL NodeJS:MySQL 查询一起执行
- python - scipy.stats 中两个 ttest 实现的不同结果
- kernel - 使用 DTrace 分析 FreeBSD 内核
- python - Selenium 屏幕截图在 python 中保存到数据库
- c# - 直接使用返回值与局部变量有何不同
- java - Tomcat 9 jndi:协议 MalformedURLException:未知协议:jndi
- java - Comparator.comparing 中的多项检查