【发布时间】:2022-01-12 02:34:06
【问题描述】:
我正在尝试为添加到愿望清单的项目显示心形图标。我正在使用本地存储来保存愿望清单中的项目。我有一个 id 数组,例如 wishlistIds = [123,425,212,512,516]。所以我想检查该数组中的 id 是否与对象数组(即产品)匹配。对象的产品数组如下所示;
items = [{id:123, productName:"Cheese", price: 15.99}, {id:599, productName: "Honey", price:21.99}]
我一直在尝试使用 Array.filter 方法来实现我想要的,但无法实现;
wishlistIds.filter(w => w.id === items.id)
上面的代码返回了wishlistIds中的所有id,而不过滤项目中的id。解决这个问题的正确方法是什么?
【问题讨论】:
-
items是一个数组。它没有id属性。 -
你想得到两个列表的交集吗? IE。在当前商品集中和的所有商品的 ID?
-
@RubenHelsloot 正确
-
可能一种解决方案是
wishlistIds.filter(w =>items.find(item => w.id === item.id) > 0)
标签: javascript arrays ecmascript-6 filter