ES6 Map

一、Map結構數組

Map爲「鍵值對」的數據結構數據結構

const m = new Map();

 

二、構造函數函數

做爲構造函數,Map 也能夠接受一個數組做爲參數。該數組的成員是一個個表示鍵值對的數組。spa

const map = new Map([ ['name', '張三'], ['title', 'Author'] ]); map.size // 2
map.has('name') // true
map.get('name') // "張三"
map.has('title') // true
map.get('title') // "Author"

 

三、鍵code

 Map 的鍵其實是跟內存地址綁定的,只要內存地址不同,就視爲兩個鍵。blog

若是 Map 的鍵是一個簡單類型的值(數字、字符串、布爾值),則只要兩個值嚴格相等,Map 將其視爲一個鍵three

 

四、set內存

set方法設置鍵名key對應的鍵值爲value,而後返回整個 Map 結構。若是key已經有值,則鍵值會被更新,不然就新生成該鍵。字符串

set結構的新增成員爲add方法,其餘方法如has、delete、clear同樣。get

 

五、get(key)


六、遍歷方法

 

keys():返回鍵名的遍歷器。
values():返回鍵值的遍歷器。
entries():返回全部成員的遍歷器。
forEach():遍歷 Map 的全部成員。

for (let item of map.entries()) { console.log(item[0], item[1]); } // "F" "no" // "T" "yes"

// 或者
for (let [key, value] of map.entries()) { console.log(key, value); } // "F" "no" // "T" "yes"

// 等同於使用map.entries()
for (let [key, value] of map) { console.log(key, value); } // "F" "no" // "T" "yes"

 

七、轉爲數組

Map 結構轉爲數組結構,比較快速的方法是使用擴展運算符(...)。

 

 

const map = new Map([ [1, 'one'], [2, 'two'], [3, 'three'], ]); [...map.keys()]

 

set結構也是這樣轉換爲數組。

 

八、forEach

map.forEach(function(value, key, map) { console.log("Key: %s, Value: %s", key, value); });

注:forEach的回調函數第一個參數爲value,第二個爲key。

set結構具備foreach方法。

 

總結:與set結構的方法區別有構造函數和新增函數(add/set)

相關文章
相關標籤/搜索