ES6系列----Set和Map數據結構對比

一、Set和Map數據結構定義區別

  Set數據結構 Map數據結構
定義 Set類似於數組,但是成員的值都是唯一的,沒有重複。使用new Set()創建Set實例 Map類似於對象,但是鍵的範圍不限於字符串,各種類型的值都可以作爲鍵值。使用new Map()創建Map實例

二、Set和Map操作方法的區別

  Set數據結構 Map數據結構
size屬性 set.size map.size
新增 set.add(val); 返回Set結構本身 map.set(key, val); 返回Map結構本身
刪除 set.delete(val); 返回布爾值,表示是否刪除成功 map.delete(key); 返回布爾值,表示是否刪除成功
是否包含某個值 set.has(val); 返回布爾值,表示是否包含這個值 map.has(val); 返回布爾值,表示是否包含這個鍵
獲取值 - map.get(key); 返回對應鍵值的值,沒有則返回undefined
清除所有成員 set.clear(); 沒有返回值 map.clear(); 沒有返回值
//Set數據結構
let set = new Set();
set.add(1)
   .add(2)
   .add(2);
set.size;  //2
set.has(3);  //false
set.delete(2);  
set.has(2);  //false



//Map數據結構
const map = new Map();
map.set('aaa', true)
   .set(2, 2)
   .set(undefined, 'this is undefined');
map.size;  //3
map.get(undefined);  //'this is undefined'
map.has(2);  //true
map.delete(2);  //true
map.has(2);  //false

三、Set和Map的遍歷方法

1. 遍歷鍵名:for(let item of set.keys()){ }; for(let item of map.keys()){ };

2. 遍歷鍵值:for(let item of set.values()){ }; for(let item of map.values()){ };

3. 遍歷鍵值對:for(let item of set.entries()){ }; for(let item of map.entries()){ };

4. 使用回調遍歷每個成員:set.forEach(); map.forEach()

四、Set和Map的應用

1. 數組去重:[... new Set(Array)] ;

參考文章:http://es6.ruanyifeng.com/

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章