Set和Map是什麼,有什麼區別
阿新 • • 發佈:2020-11-12
-
Map
-
Map是一組鍵值對的結構,具有極快的查詢速度
-
初始化Map需要一個二維陣列,或者直接初始化一個空Map,Map具有以下方法
var m = new Map(); // 空Map m.set('Adam', 67); // 新增新的Key-value m.has('Adam'); // 是否存在key 'Adam' : true m.get('Adam'); // 67 m.delete('Adam'); // 刪除key 'Adam' m.get('Adam'); // undefined
-
一個key只能對應一個value,所以多次對一個key放入value,後面的值會把前面的值沖掉
-
-
Set
-
Set和Map類似,也是一組key的集合,但不儲存value。由於key不能重複,所以,在Set中,沒有重複的key
-
要建立一個Set,需要提供一個Array作為輸入,或者直接建立一個空Set
var s1 = new Set(); // 空Set var s2 = new Set([1, 2, 3]); // 1, 2, 3
-
重複元素在Set中會自動被過濾
var s = new Set([1, 2, 3, 3, '3']); s; // Set {1, 2, 3, '3'} 3和'3' 是不同的元素
-
通過add(key) 可以新增元素到Set中,可以重複新增,但不會有效果
-
通過delete(key) 可以刪除元素
-
Map和Set是ES6標準新增的資料型別,請根據瀏覽器的支援情況決定是否要是用