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