話不多說,直接進正題
一、Map
Map也是ES6新增的一種數據類型,它的本質和對象一樣都是鍵值對的集合。
與對象不同的是,它的鍵值可以是各種數據類型
首先我們創建一個Map數據
//用var創建一樣 let map1 = new Map();
我們通過Object實例化兩個對象
var obj1 = new Object(); var obj2 = new Object();
我們使用set方法對Map進行添加值
map1.set(obj1,"對象鍵值1"); map1.set(obj2,"對象鍵值2"); console.log(map1);
還可以用get方法進行取值
console.log(map1.get(obj1));
console.log(map1.get(obj2));
has方法判斷是否存在
console.log(map1.has(obj2));
delete方法刪除數據
map1.delete(obj2); console.log(map1.has(obj2));
size屬性可返回其大小,類似數組的length屬性
console.log(map1.size)
clear方法清空數據
map1.clear();
console.log(map1.size);
數組作為構造函數參數
let arrMap = new Map([['name','lemon'],['age','18']]); console.log(arrMap);
forEach遍歷Map
arrMap.forEach(function(val,key){ console.log(key+":"+val); });
轉換成數組 擴展運算符
let arr = [...arrMap];
console.log(arr);
for of 循環
for(let i of arrMap){ console.log(i); }
鍵迭代器
let keys = arrMap.keys(); console.log(keys); for(var i = 0 ; i < arrMap.size; i++){ console.log(keys.next().value); }
值迭代器
let vals = arrMap.values();
console.log(vals);
數字類型的鍵值
let map = new Map([[1,"zhangsan"],[2,"lisi"]]); map.forEach(function(val,key){ console.log(key+":"+val); });