JavaScript - Map.forEach() 方法



在 JavaScript 中,forEach() 方法可在 Map 物件上使用。它接受一個回撥函式作為引數。它為 Map 物件中的每個鍵值對執行一次,順序為插入順序。此方法不返回任何內容(即返回 undefined),並且它不會修改其被呼叫的 Map 物件。

此方法幾乎與所有瀏覽器相容,例如 Chrome、Edge、Firefox、Opera 和 Safari。

語法

以下是 JavaScript Map.forEach() 方法的語法:

forEach(callbackFn, thisArg)

引數

此方法接受兩個引數。具體說明如下:

  • callbackFn − 一個為陣列中每個元素呼叫一次的函式。此函式接受三個引數。以下是每個引數的說明:

    • element − 當前正在處理的元素。

    • index − 當前元素的索引。

    • array − 呼叫 forEach 的陣列。

  • thisArg (可選) − 這是一個可選引數,允許您指定 callbackFn 中 this 的值。

返回值

此方法不返回任何內容(即“undefined”)。

示例

示例 1

在此示例中,我們使用 JavaScript forEach() 方法迭代 Map 物件中的每個鍵值對並列印它們:

<html>
<body>
   <script>
      const map = new Map([
         [1, 'apple'],
         [2, 'banana'],
         [3, 'cherry']
      ]);
      map.forEach((value, key) => {
         document.write(`${key}: ${value}`, "<br>");
      });
   </script>
</body>
</html>

如果我們執行上述程式,它將返回 Map 物件的所有鍵值對。

示例 2

在此示例中,我們使用 forEach() 方法將 Map 物件中的每個“值”修改為大寫。

<html>
<body>
   <script>
      const myMap = new Map([
         [1, 'apple'],
         [2, 'banana'],
         [3, 'cherry']
      ]);
      myMap.forEach((value, key, map) => {
         map.set(key, value.toUpperCase());
      });
      document.write(myMap.get(1), "<br>");
      document.write(myMap.get(2), "<br>");
      document.write(myMap.get(3));
   </script>
</body>
</html>

執行上述程式後,Map 物件中的所有“值”都將被修改為大寫。

示例 3

在下面的示例中,我們使用 forEach() 方法迭代 Map 物件中的每個鍵值對,並將它們推入名為“keyValueArray”的陣列中。

<html>
<body>
   <script>
      const myMap = new Map([
         [1, 'apple'],
         [2, 'banana'],
         [3, 'cherry']
      ]);
   
      const keyValueArray = [];
      myMap.forEach((value, key) => {
         keyValueArray.push([key, value]);
      });
      document.write(keyValueArray); 
      
      // Output: [[1, 'apple'], [2, 'banana'], [3, 'cherry']]
   </script>
</body>
</html>

如果我們執行上述程式,Map 物件中的元素將被推入空陣列中。

廣告