ECMAScript 6 之 Set Map 命令
阿新 • • 發佈:2018-12-14
一、 Set
基本用法
Set 是ES6新增的資料結構。它類似於陣列,但是成員的值都是唯一的,沒有重複的值。
根據它的規則,可以用於陣列去重:
let a = [1,2,3,4,3,2];
let set = new Set(a);
console.log(set);
//Set {1,2,3,4}
- 例項化
let set = new Set(); //例項化一個空 set 集合
- 遍歷
const s = new Set(); [2, 3, 5, 4, 5, 2, 2].forEach((x)=>{s.add(s)}); //箭頭函式,一般用於回撥函式 for (let i of s) { //for..of 可以遍歷陣列 console.log(i); //輸出陣列中每個成員 } console.log(s); //輸出添加了數之後的 s 集合 // 2 3 5 4 //Set {2,3,4,5}
上面的程式碼通過add方法向Set結構加入成員,結果表明Set結構不會新增重複的值。
- 增刪改查
- add() 新增某個值,返回Set結構本身
- delete() 刪除某個值,返回boolean,true表示刪除成功
- has() 查詢某個值,返回boolean,true表示該值是Set的成員
- clear() 清除所有成員,沒有返回值
s.add(1).add(2).add(2); // 注意2被加入了兩次 s.size // 2 s.has(1) // true node環境 s.has(2) // true s.has(3) // false s.delete(2); s.has(2) // false
注意:
let set = new Set();
let a = NaN;
let b = NaN;
set.add(a);
set.add(b);
set // Set {NaN}
-------------
let set = new Set();
set.add({});
set.size // 1
set.add({});
set.size // 2
在上面程式碼中,結果說明,在Set內部,兩個NaN是相等的,而兩個物件是不相等的,即使物件的內容一樣。