ES6新增map映射表數(shù)據(jù)類型

map存儲的是一個個的鍵值對羊初。主要特性介紹如下:

1 獲取map
  • 構(gòu)造函數(shù)+set方法
let mapList = new Map();
mapList.set('name','zhangsan');
console.log(mapList);//{"name" => "zhangsan"}
  • 構(gòu)造函數(shù)初始化方法 傳入一個特殊的二維數(shù)組
let mapList = new Map(
[['name','zhangsan'],
['age',18]]
);
console.log(mapList );//{"name" => "zhangsan", "age" => 18}

需要注意的是內(nèi)層數(shù)組元素個數(shù)都為2,映射為一個鍵值對,超過2個會被忽略久妆,1個會認(rèn)為該鍵值對值為undefiend "name" => undefined跨跨,0個會認(rèn)為該鍵值對鍵與值均為undefiend undefined => undefined

2 map的長度size
let mapList = new Map(
[['name','zhangsan'],
['age',18]]
);
console.log(mapList.size);//2
3 map的增刪改查操作
  • 增 set方法設(shè)置不存在的鍵時即為增
let mapList = new Map(
[['name','zhangsan'],
['age',18]]
);
mapList.set('count',90);
console.log(mapList);
//{"name" => "zhangsan", "age" => 18, "count" => 90}
  • 刪 mapList.delete(key),mapList.clear()
let mapList = new Map(
[['name','zhangsan'],
['age',18]]
);
mapList.delete('count');
console.log(mapList);
//{"name" => "zhangsan", "age" => 18}
mapList.clear();
console.log(mapList);
//{}
  • 改 mapList.set(key)設(shè)置已有鍵key時即為更改
let mapList = new Map(
[['name','zhangsan'],
['age',18]]
);
mapList.set('name','lisi');
console.log(mapList);
//{"name" => "lisi", "age" => 18}
  • 查 mapList.get(key)即獲取對應(yīng)鍵的值,mapList.has(key)即判斷有無該鍵key
let mapList = new Map(
[['name','zhangsan'],
['age',18]]
);
console.log(mapList.has('name'));//true
console.log(mapList.get('name'));//zhangsan
4 遍歷
  • let .. of
let mapList = new Map(
[['name','zhangsan'],
['age',18]]
);
for(let key of mapList.keys()){
  console.log(key);
}
//name age
for(let value of mapList.values()){
  console.log(value);
}
//zhangsan 18
for(let [key,value ]of mapList.entries()){
  console.log(key,value);
}
//name zhangsan
//age 18
  • forEach
let mapList = new Map(
[['name','zhangsan'],
['age',18]]
);
mapList.forEach(function(value,key){
  console.log(value,key);
})
//zhangsan name
//18 "age"

需要注意的是map的key完全可以是引用類型

let mapList = new Map();
let obj = {};
mapList.set(obj,{name:'zhangsan'});
console.log(mapList.get(obj));//{name:'zhangsan'}
4 WeakMap

map的閹割版衡查,鍵只能為引用類型用僧,沒有size屬性,沒有clear方法辰如,不能遍歷
ES6總篇--目錄

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末普监,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子琉兜,更是在濱河造成了極大的恐慌凯正,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件豌蟋,死亡現(xiàn)場離奇詭異廊散,居然都是意外死亡,警方通過查閱死者的電腦和手機梧疲,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進(jìn)店門允睹,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人幌氮,你說我怎么就攤上這事缭受。” “怎么了该互?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵米者,是天一觀的道長。 經(jīng)常有香客問我宇智,道長蔓搞,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任随橘,我火速辦了婚禮败明,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘太防。我一直安慰自己妻顶,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布蜒车。 她就那樣靜靜地躺著讳嘱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪酿愧。 梳的紋絲不亂的頭發(fā)上沥潭,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天,我揣著相機與錄音嬉挡,去河邊找鬼钝鸽。 笑死汇恤,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的拔恰。 我是一名探鬼主播因谎,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼颜懊!你這毒婦竟也來了财岔?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤河爹,失蹤者是張志新(化名)和其女友劉穎匠璧,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體咸这,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡夷恍,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了媳维。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酿雪。...
    茶點故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖侨艾,靈堂內(nèi)的尸體忽然破棺而出执虹,到底是詐尸還是另有隱情,我是刑警寧澤唠梨,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布袋励,位于F島的核電站,受9級特大地震影響当叭,放射性物質(zhì)發(fā)生泄漏茬故。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一蚁鳖、第九天 我趴在偏房一處隱蔽的房頂上張望磺芭。 院中可真熱鬧,春花似錦醉箕、人聲如沸钾腺。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽放棒。三九已至,卻和暖如春己英,著一層夾襖步出監(jiān)牢的瞬間间螟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留厢破,地道東北人荣瑟。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像摩泪,于是被迫代替她去往敵國和親笆焰。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容