給定一個物件陣列,如果你想要獲取屬性的值,但不包含重複的值,你可以這樣做。

假設你有一個 bills 陣列,內容如下:

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,我們將刪除重複的值。

...展開運算子,將展開 Set 中的值到一個陣列中。