App下載

JavaScript Map相關(guān)知識介紹

互聯(lián)網(wǎng)沖浪金牌選手 2023-06-18 13:20:50 瀏覽數(shù) (1685)
反饋

JavaScript Map是一種存儲鍵值對的數(shù)據(jù)結(jié)構(gòu),它可以使用任何類型的值作為鍵或值。Map對象可以記住鍵的插入順序,也可以通過迭代器來遍歷鍵值對。Map對象有一些重要的方法和屬性,下面介紹一些常用的。

創(chuàng)建Map對象

創(chuàng)建Map對象有兩種方式:

  • 通過傳遞一個數(shù)組給new Map()構(gòu)造函數(shù),數(shù)組的每個元素都是一個鍵值對的數(shù)組,例如:
    // 創(chuàng)建一個Map對象
    const fruits = new Map([
    ["apples", 500],
    ["bananas", 300],
    ["oranges", 200],
    ]);

  • 通過使用set()方法來添加鍵值對,例如:

// 創(chuàng)建一個空的Map對象
const fruits = new Map();


// 使用set()方法添加鍵值對
fruits.set("apples", 500);
fruits.set("bananas", 300);
fruits.set("oranges", 200);

set()方法也可以用來修改已有的鍵值對,只需傳入相同的鍵和新的值即可。

獲取Map對象的大小和值

Map對象有一個size屬性,可以返回Map對象中鍵值對的數(shù)量,例如:

// 獲取Map對象的大小
fruits.size; // 返回3

Map對象有一個get()方法,可以根據(jù)鍵來獲取對應(yīng)的值,例如:

// 獲取Map對象中某個鍵的值
fruits.get("apples"); // 返回500

刪除Map對象中的元素

Map對象有一個delete()方法,可以根據(jù)鍵來刪除對應(yīng)的鍵值對,例如:

// 刪除Map對象中某個鍵值對
fruits.delete("apples"); // 返回true

delete()方法會返回一個布爾值,表示是否刪除成功。

Map對象也有一個clear()方法,可以清空整個Map對象,例如:

// 清空Map對象
fruits.clear(); // 返回undefined

判斷Map對象中是否存在某個鍵

Map對象有一個has()方法,可以根據(jù)鍵來判斷Map對象中是否存在該鍵,例如:

// 判斷Map對象中是否存在某個鍵
fruits.has("apples"); // 返回true

has()方法會返回一個布爾值,表示是否存在該鍵。

遍歷Map對象

Map對象可以通過forEach()方法來遍歷所有的鍵值對,該方法接受一個回調(diào)函數(shù)作為參數(shù),回調(diào)函數(shù)會在每個鍵值對上執(zhí)行,并傳入當(dāng)前的值、鍵和整個Map對象作為參數(shù),例如:

// 遍歷Map對象
let text = "";
fruits.forEach(function (value, key) {
text += key + " = " + value;
});

Map對象也可以通過entries()方法來返回一個包含所有鍵值對的迭代器對象,該迭代器對象可以用for...of循環(huán)來遍歷,并得到每個鍵值對的數(shù)組,例如:

// 遍歷Map對象
let text = "";
for (const x of fruits.entries()) {
text += x;
}

除了entries()方法外,還有keys()方法和values()方法,分別返回一個包含所有鍵或所有值的迭代器對象。

總結(jié)

JavaScript Map是一種靈活而強(qiáng)大的數(shù)據(jù)結(jié)構(gòu),它可以使用任何類型的值作為鍵或值,并且保持了插入順序。Map對象提供了一些方便的方法和屬性來操作和遍歷鍵值對。如果你需要存儲一些相關(guān)聯(lián)的數(shù)據(jù),并且需要快速地訪問和修改,那么Map對象是一個不錯的選擇。

0 人點(diǎn)贊