- Map的鍵可以使各種類型的值(包括字符串)
js對(duì)象中只能用字符串作為鍵,有很大的限制,所以引入了Map數(shù)據(jù)結(jié)構(gòu)。
- Map的鍵實(shí)際上是跟內(nèi)存地址綁定的,這樣就就解決了同名屬性碰撞的問題
var map = new Map();
map.set(['a'], 555);
map.get(['a']); //undefined
-
Map的屬性和方法
- size
返回Map結(jié)構(gòu)的成員總數(shù)
- set(key,value)
此方法返回的是Map本身,所以可以鏈?zhǔn)秸{(diào)用
- get(key)
如果不存在,返回undefined
has(key) 返回布爾值
delete(key)返回布爾值
clear()
清除所有成員,沒有返回值
遍歷方法
for (let key of map.keys()){}
for(let value of map.values()){}
for(let [key, value] of map.entries()){}
for(let [key, value] of map){}
- Map轉(zhuǎn)為數(shù)組
[...map.keys()]
[...map.values()]
[...map,entries()]
[...map] //結(jié)果同上
- 數(shù)組轉(zhuǎn)為Map
new Map([[true, 7], [{foo: 3},['abc]]])