如何在一个JavaScript数组中获得一组对象的唯一属性

111 阅读1分钟

给定一个对象数组,如果你想获得某个属性的值,但不重复,你可以这样做。

假设你有一个有这样内容的钞票数组。

const bills = [
  { date: '2018-01-20', amount: '220', category: 'Electricity' },
  { date: '2018-01-20', amount: '20', category: 'Gas' },
  { date: '2018-02-20', amount: '120', category: 'Electricity' }
]

并且你想提取数组中每个项目的category 属性的唯一值。

下面是你可以做的。

const categories = [...new Set(bills.map(bill => bill.category))]

解释

Set是JavaScript在ES6中得到的一种新的数据结构。它是一个唯一值的集合。我们把从使用map() 得到的属性值的列表放入其中,我们如何使用它将返回这个数组。

['Electricity', 'Gas', 'Electricity']

通过Set,我们将删除重复的部分。

...传播操作符,它将把集合的值扩展成一个数组。