如何根据对象属性过滤数组中的对象?
我现在有这个代码:
products = [
{
title: "Bambu shorts 2.0"
},
{
title: "Bambu shorts 2.0"
},
{
title: "Bambu shorts 3.0"
}
]
uniqueProducts = [];
$.each products, (i, el) ->
if $.inArray(el.title, uniqueProducts) == -1
uniqueProducts.push el
return我想通过每个对象的"titel“属性来过滤数组。因此,如果对象的标题已存在于uniqueProducts数组中,则不应添加该对象。
我的代码仍然将这三个对象都推送到uniqueProducts数组中。
提前谢谢你!
发布于 2020-12-09 01:53:59
您可以使用Set对seen title进行过滤。
const
raw_products = [{ title: "Bambu shorts 2.0" }, { title: "Bambu shorts 2.0" }, { title: "Bambu shorts 3.0" }],
uniqueProducts = raw_products.filter(
(s => ({ title }) => !s.has(title) && s.add(title))
(new Set)
);
console.log(uniqueProducts);
https://stackoverflow.com/questions/65204151
复制相似问题