JavaScript - Map.forEach() 方法



在 JavaScript 中,forEach() 方法在 Map 对象上可用。它采用回调函数作为参数。它按 insertion 顺序对 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 对象中的所有 “values” 将被修改为大写。

示例 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 对象中的元素将被推送到一个空数组中。