1. 程式人生 > >JavaScript中的Map和Set

JavaScript中的Map和Set

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 = new
Map();//空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