给定一个对象数组,如果你想获得某个属性的值,但不重复,你可以这样做。
假设你有一个有这样内容的钞票数组。
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,我们将删除重复的部分。
... 是 传播操作符,它将把集合的值扩展成一个数组。