集合是一種資料順序沒有意義而且其資料不會有重複值的一種資料結構,在 JavaScript ES6 的規範中,我們可以透過 new Set()
來建立一個 set。
接著就來練習建立 set 和使用它的相關方法吧!
先建立一個 set:
let set1 = new Set([1, 2, 3]);
新增元素
set1.add(5);
console.log(set1); // Set { 1, 2, 3, 5 }
刪除元素
set1.delete(2);
console.log(set1); // Set { 1, 3, 5 }
計算 set 共有幾個元素
console.log(set1.size); // 3
判斷 set 是否有某元素
console.log(set1.has(1)); // true
console.log(set1.has(6)); // false
清除 set 子元素
console.log(set1.clear()); // undefined
返回索引值,但 Set不分 索引值和資料值,因此此函式和 values() 結果相同。
set1 = new Set([4, 5, 6]);
for (let item of set1.keys()) {
console.log(item);
}
// 4
// 5
// 6
返回資料值
set1 = new Set([4, 5, 6]);
for (let item of set1.values()) {
console.log(item);
}
// 4
// 5
// 6
返回索引和資料值
set1 = new Set([4, 5, 6]);
for (let item of set1.entries()) {
console.log(item);
}
// [4, 4]
// [5, 5]
// [6, 6]
這次實作的完整程式碼在以下連結:
https://github.com/a90100/javascript-data-structure/blob/master/day13-set.js
介紹了 Set 之後,明天要來介紹擁有索引值(key)和資料值(value)的 Map。