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

map存儲(chǔ)的是一個(gè)個(gè)的鍵值對(duì)。主要特性介紹如下:

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

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

2 map的長(zhǎng)度size
let mapList = new Map(
[['name','zhangsan'],
['age',18]]
);
console.log(mapList.size);//2
3 map的增刪改查操作
  • 增 set方法設(shè)置不存在的鍵時(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時(shí)即為更改
let mapList = new Map(
[['name','zhangsan'],
['age',18]]
);
mapList.set('name','lisi');
console.log(mapList);
//{"name" => "lisi", "age" => 18}
  • 查 mapList.get(key)即獲取對(duì)應(yīng)鍵的值,mapList.has(key)即判斷有無(wú)該鍵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)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容