如何根据属性过滤数组中的 objects

How to filter objects in a array based on the properties

如何根据 objects 属性过滤数组中的 objects?

我现在有这个代码:

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

我想按每个 object 的“标题”属性 过滤数组。 因此,如果 object 的标题已经存在于 uniqueProducts 数组中,则不应添加 object.

我的代码仍然将所有三个 object 推送到 uniqueProducts 数组。

谢谢你的进步!

您可以使用 Set 进行过滤以查看 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);