JavaScript引用類型---Map

1、建立Map對象

Map 對象保存鍵值對。任何值(對象或者原始值) 均可以做爲一個鍵或一個值數組

1.構造函數

語法: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

2、Map實例屬性

1.myMap.size 可訪問屬性返回 Map 對象的元素數量

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

3、Map實例方法

1.set()

語法: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");

2.get()

語法: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

3.has()

語法: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

4.delete() 方法用於移除 Map 對象中指定的元素

語法: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

5.clear()方法會移除Map對象中的全部元素

語法:myMap.clear()

let myMap = new Map();
    myMap.set("bar","baz");
    myMap.set(1,"foo");
    console.log(myMap.size); // 2
    myMap.clear();

6.entries()

語法: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"]

7.keys() 返回一個新的 Iterator 對象。它包含按照順序插入Map對象中每一個元素的key值

語法: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

8.values() 方法返回一個新的Iterator對象。它包含按順序插入Map對象中每一個元素的value值

語法: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"

9.forEach()

語法: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
    });
相關文章
相關標籤/搜索