JavaScript 的 Map 與用法

在JavaScript中,Map是一種集合類型,它可以儲存鍵值對,其中鍵和值可以是任意類型。這與傳統的JavaScript物件不同,傳統的物件只允許使用字串(或符號)作為鍵。Map的這一特性使得它非常適合需要高效鍵查詢且鍵的類型多樣化的情況。

建立和初始化 Map

要建立一個新的Map,你可以使用Map建構函式。你也可以選擇將一個陣列傳入Map建構函式,這個陣列的元素自身也是陣列,其中包含兩個元素:鍵和值。

let myMap = new Map();

// 使用陣列初始化Map
let initialData = [['key1', 'value1'], ['key2', 'value2']];
let myMapWithInitialData = new Map(initialData);

 

新增元素

使用set方法向Map新增元素。這個方法接受兩個參數:鍵和相對應的值。如果鍵已經存在,set方法將更新其值。

myMap.set('key1', 'value1');
myMap.set('key2', 'value2');
myMap.set('key3', 'value3');

 

取得元素

使用get方法可以根據鍵來取得對應的值。如果鍵不存在於Map中,則回傳undefined。

console.log(myMap.get('key1')); // "value1"
console.log(myMap.get('key4')); // undefined


刪除元素

使用delete方法可以根據鍵來刪除對應的鍵值對。這個方法返回一個布林值,表示是否成功刪除。

myMap.delete('key1'); // true

 

檢查元素

使用has方法可以檢查Map中是否包含某個鍵。這個方法返回一個布林值。

console.log(myMap.has('key2')); // true
console.log(myMap.has('key1')); // false,因為已被刪除

 

走訪Map

Map是可迭代的,可以使用for...of迴圈來走訪其鍵值對。此外,Map還提供了keys(), values(), 和entries()方法,分別用來走訪鍵、值、或是鍵值對。

for (let [key, value] of myMap) {
    console.log(key + " = " + value);
}

// 走訪鍵
for (let key of myMap.keys()) {
    console.log(key);
}

// 走訪值
for (let value of myMap.values()) {
    console.log(value);
}

// 使用forEach
myMap.forEach((value, key) => {
    console.log(key + " = " + value);
});

 

取得Map的大小

使用size屬性可以取得Map中鍵值對的數量。

console.log(myMap.size); // 2

 

使用Map的好處

  • 鍵的多樣性Map允許使用任何類型的值作為鍵,包括物件。
  • 記憶效率:相較於使用物件作為鍵值儲存,Map在頻繁新增和刪除鍵值對的情況下通常表現更好。
  • 順序保證Map在走訪時會保持元素的插入順序,這與普通物件不同。

 Map提供了一個靈活而強大的方式來管理帶有鍵值對的資料集,適合於許多需要高效資料查詢和操作的應用場景。

 

課程推薦

HTML與SEO實戰應用—並以ChatGPT助力提升網站品質與流量

HTML與SEO實戰應用—並以ChatGPT助力提升網站品質與流量

本課程專為希望深入了解 HTML 並有效結合 SEO 策略的學員設計。我們將重點放在 HTML 的深度學習與應用上,同時穿插介紹如何透過搜索引擎優化提升網站能見度。透過即時互動式的直播教學,加上 ChatGPT 的輔助,您將學習到如何建立一個結構優良、美觀且符合 SEO 標準的網站。這不僅會提升網站的用戶體驗,還會大幅提高網站的搜索引擎排名,進而增加訪客流量和潛在客戶。
用AI強化職場競爭力 ChatGPT、Midjourney從入門到精通

用AI強化職場競爭力 ChatGPT、Midjourney從入門到精通

在快速變遷的職場中,提升競爭力成為關鍵。透過引領潮流的AI技術,ChatGPT和Midjourney將助您勇攀高峰。無論您是AI新手還是專家,這個課程將引導您從入門到精通,解密AI的奧秘,並學習如何運用於職場。
GitHub Copilot AI 程式碼編輯工具應用實務班

GitHub Copilot AI 程式碼編輯工具應用實務班

讓學員瞭解有效地使用該工具來加速開發流程、提高程式碼品質和生產力。課程重點放在以 JavaScript 程式語言為例,介紹 Copilot 的基本原理、使用方法和最佳實踐。

輸入折扣碼 TC1456JA 還可以額外獲得 NT$500 優惠喔。

ChatGPT X Clipchamp AI 生成影片、配音與字幕應用實戰班

ChatGPT X Clipchamp AI 生成影片、配音與字幕應用實戰班

掌握Clipchamp AI的操作技巧,靈活運用Clipchamp AI進行影片編輯和創作,實現創意表達和傳播目的。

輸入折扣碼 TC1451JAN 還可以額外獲得 NT$500 優惠喔。

如何串接多種數位工具資訊?Looker Studio 資料視覺化實戰班|GoogleAds x FB廣告 x GA流量數據

如何串接多種數位工具資訊?Looker Studio 資料視覺化實戰班|GoogleAds x FB廣告 x GA流量數據

Looker Studio除了可協助使用者監控網站流量、廣告成效、選擇匯入資源的管道之外,還可以將數據資料多平台整合、數據報表即時更新、數據範本可重複套用的效益,透過自動化系統,將數據全部匯入同一個報表平台,是企業不可或缺的重要工具。

輸入折扣碼 TC1270JIA 還可以額外獲得 NT$500 優惠喔。

和我們交流

加入我們的社群,裡面會有一些技術的內容、有趣的技術梗,以及職缺的分享,歡迎和我們一起討論。