赞
踩
Array.forEach() 和 Array.map() 都是 JavaScript 数组中常用的方法,但它们之间有一些重要的区别:
返回值:
forEach():没有返回值,它只是对数组中的每个元素执行提供的函数。
map():返回一个新的数组,其元素是通过对原数组的每个元素执行提供的函数后的结果。
内部实现:
forEach():只是遍历数组,执行回调函数,不会改变原数组。
map():会创建一个新的数组,并将回调函数的返回值填充到新数组中,原数组不会被改变。
常见用途:
forEach():适用于需要对数组元素执行某些操作,但不需要返回新数组的情况,例如打印数组元素、更新 DOM 等。
map():适用于需要基于原数组创建新数组的情况,例如数组转换、数据预处理等。
链式调用:
forEach():由于没有返回值,因此不能够在 forEach() 之后直接链式调用其他数组方法。
map():由于返回一个新数组,因此可以在 map() 之后继续链式调用其他数组方法,如 filter()、reduce() 等。
举个例子,假设有一个数组 [1, 2, 3, 4, 5],使用 forEach() 将其每个元素乘以 2:
const arr = [1, 2, 3, 4, 5];
arr.forEach(num => console.log(num * 2)); // 输出 2 4 6 8 10
而使用 map() 将其每个元素乘以 2 并返回一个新数组:
const arr = [1, 2, 3, 4, 5];
const doubledArr = arr.map(num => num * 2); // doubledArr 为 [2, 4, 6, 8, 10]
forEach() 和 map() 都是非常有用的数组方法,但在具体使用时需要根据需求来选择合适的方法。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。