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 对象中的元素将被推入空数组中。

广告
© . All rights reserved.