You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何筛选出仅包含第一个数组中ID的产品数组?

问题解决:筛选出ID匹配的产品数组

错误原因

你写的es.id.includes(first)会报错,因为es.id是数字类型,数字本身没有includes()方法——这个方法只有数组和字符串能调用。

正确代码

把判断逻辑反过来,用第一个数组的includes()方法检查当前产品的ID是否在其中:

let first = [1, 4]
let second = [{id: 1}, {id: 2}, {id: 4}]
const filteredProducts = second.filter(item => first.includes(item.id))
console.log(filteredProducts) // 输出: [{id: 1}, {id: 4}]

性能优化(可选)

如果first数组元素很多,推荐先转成Set,这样查找效率会更高(时间复杂度从O(n*m)降到O(n)):

let first = [1, 4]
let idSet = new Set(first)
let second = [{id: 1}, {id: 2}, {id: 4}]
const filteredProducts = second.filter(item => idSet.has(item.id))

内容的提问来源于stack exchange,提问作者shiroSn

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 04:50:24