1. 程式人生 > >ECMAScript 6 之 Set Map 命令

ECMAScript 6 之 Set Map 命令

一、 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結構不會新增重複的值。

  • 增刪改查
  1. add()  新增某個值,返回Set結構本身
  2. delete()  刪除某個值,返回boolean,true表示刪除成功
  3. has()  查詢某個值,返回boolean,true表示該值是Set的成員
  4. 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是相等的,而兩個物件是不相等的,即使物件的內容一樣。