JavaScript中的Map和Set
阿新 • • 發佈:2017-09-19
bob 二維數組 mic span 添加 ber {} trac 語言
JavaScript的默認對象表示方法{}可以視為其他語言中的Map或者Dictionary的數據結構,即一組鍵值對。
但是JavaScript的對象有個小問題,就是鍵必須是字符串,但實際上Number或者其他數據類型作為鍵也是非常合理的。
Map是一組鍵值對的結構,具有極快的查找速度。
var m = new Map([[‘Michael‘,95],[‘Bob‘,75],[‘Tracy‘,85]]); m.get(‘Michael‘);//95
初始化Map需要一個二維數組,或者直接初始化一個空Map。Map具有以下方法:
var m = newMap();//空Map m.set(‘Adam‘,67);//添加新的key-value m.set(‘Bob‘,59); m.has(‘Adam‘);//是否存在key‘Adam’:true m.get(‘Adam‘);//67 m.delete(‘Adam‘);//刪除key‘Adam’ m.get(‘Adam‘);//undefined
有雨一個key只能對應一個value,所以,多次對一個key放入value,後面的值會把前面的覆蓋掉
var m = new Map(); m.set(‘Adam‘,67); m.set(‘Adam‘,88); m.get(‘Adam‘);//88
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
通過add(key)方法可以添加元素到set中,可以重復添加,但是不會有效果
>>> s.add(4) >>>s {1,2,3,4} >>> s.add(4) >>> s {1,2,3,4}
通過delete(key)方法可以刪除元素:
var s = new Set ([1,2,3]); s;//Set{1,2,3} s.delete(3); s;//Set{1,2}
JavaScript中的Map和Set