Map 對象保存鍵值對。任何值(對象或者原始值) 均可以做爲一個鍵或一個值數組
語法:new Map([iterable])
參數:函數
iterable 能夠是一個數組或者其餘 iterable 對象,其元素或爲鍵值對,或爲兩個元素的數組;每一個鍵值對都會添加到新的 Map,null 會被當作 undefinedthis
let arr = [1,2,3]; let myMap = new Map(arr.entries()); console.log(myMap.get(0)); // 1
size 屬性的值是一個整數,表示 Map 對象有多少個鍵值對。size 是隻讀屬性,它對應的 set 方法是 undefined,即不能改變它的值code
let myMap = new Map(); myMap.set("a", "alpha"); myMap.set("b", "beta"); myMap.set("g", "gamma"); console.log(myMap.size); // 3
語法:myMap.set(key, value)對象
參數:
key 必填,添加到Map對象的元素的key值
value 必填,添加到Map對象的元素的value值get
let myMap = new Map(); myMap.set("bar", "foo"); myMap.set(1, "foobar"); // 在Map對象中更新一個新元素 myMap.set("bar", "baz");
語法:myMap.get(key)it
參數:
key 想要獲取的元素的鍵console
返回值:返回一個Map對象中與指定鍵相關聯的值,若是找不到這個鍵則返回undefined構造函數
let myMap = new Map(); myMap.set("bar", "foo"); console.log(myMap.get("bar")); // "foo" console.log(myMap.get("baz")); // undefined
語法:myMap.has(key)map
參數:
key 必填,用來檢測是否存在指定元素的鍵值
返回值:若是指定元素存在於Map中,則返回true。其餘狀況返回false
let myMap = new Map(); myMap.set("bar", "foo"); console.log(myMap.has("bar")); // returns true console.log(myMap.has("baz")); // returns false
語法:myMap.delete(key)
參數:
key 必須,從 Map 對象中移除的元素的鍵(key)
返回值:若是 Map 對象中存在該元素,則移除它並返回 true;不然若是該元素不存在則返回 false
let myMap = new Map(); myMap.set("bar", "foo"); myMap.delete("bar"); // 返回 true。成功地移除元素 console.log(myMap.size); // 0
語法:myMap.clear()
let myMap = new Map(); myMap.set("bar","baz"); myMap.set(1,"foo"); console.log(myMap.size); // 2 myMap.clear();
語法:myMap.entries()
返回值:返回一個新的包含[key, value]對的Iterator對象,返回的迭代器的迭代順序與Map對象的插入順序相同
let myMap = new Map(); myMap.set("0", "foo"); myMap.set(1, "bar"); myMap.set({}, "baz"); let mapIter = myMap.entries(); console.log(mapIter.next().value); // ["0", "foo"] console.log(mapIter.next().value); // [1, "bar"] console.log(mapIter.next().value); // [Object, "baz"]
語法:myMap.keys()
let myMap = new Map(); myMap.set("0", "foo"); myMap.set(1, "bar"); myMap.set({}, "baz"); let mapIter = myMap.keys(); console.log(mapIter.next().value); // "0" console.log(mapIter.next().value); // 1 console.log(mapIter.next().value); // Object
語法:myMap.values()
let myMap = new Map(); myMap.set("0", "foo"); myMap.set(1, "bar"); myMap.set({}, "baz"); let mapIter = myMap.values(); console.log(mapIter.next().value); // "foo" console.log(mapIter.next().value); // "bar" console.log(mapIter.next().value); // "baz"
語法:myMap.forEach(callback[, thisArg])
參數:
callback 必要,每一個元素所要執行的函數
thisArg 可選,callback 執行時其 this 的值
let myMap = new Map([["foo", 3], ["bar", {}], ["baz", undefined]]); myMap.forEach((value,key,map) => { console.log("key =",key,",value =",value); //key = foo ,value = 3 });