JavaScript 中 forEach() 和 map() 循环的区别

在 JavaScript 中,forEach() 和 map() 方法都用于遍历数组,但它们的用途各有不同。forEach() 会对数组中的每个元素执行一次提供的函数,但它不会返回一个新的数组;而 map() 则会对元素进行转换,并返回一个新的数组。

JavaScript forEach()

JavaScript 的 forEach() 方法会遍历数组元素,对数组中的每个元素执行一次指定的函数。它不会返回新数组,也不会改变原始数组,这使得它非常适合用于打印日志或就地修改元素等操作。

语法:

array.forEach(callback(currentValue, index, array), thisArg);

#### 参数:

该方法接受五个参数,如上所述并在下面描述:

  • callback: 该参数保存了要对数组中每个元素调用的函数。
  • element: 该参数保存了当前正在处理的元素的值。
  • index: 该参数是可选的,它保存了当前值元素在数组中的索引,从 0 开始。
  • array: 该参数是可选的,它保存了调用 Array.every 的完整数组。
  • thisArg: 该参数是可选的,它保存了要在执行回调函数时作为 this 传递的上下文。如果传递了上下文,它将在每次调用回调函数时像这样使用,否则默认使用 undefined。

返回值: 该方法的返回值始终是 undefined。根据参数函数的功能,该方法可能会也可能不会改变提供的原始数组。
示例: 在这个例子中,我们遍历一个数字数组 [1, 2, 3, 4],并将每个数字乘以 2。

JavaScript


CODEBLOCK_7468ef02

Output

2
4
6
8

JavaScript map()

JavaScript 的 map() 方法通过对原始数组的每个元素应用指定的函数来创建一个新数组。它返回一个包含转换后值的新数组,而原始数组保持不变,通常用于数据操作和转换。

语法

map((currentElement, indexOfElement, array) => { ... } );

#### 参数:

  • callback: 对每个元素执行的函数,接受三个参数:
  • currentValue: 数组中当前正在处理的元素。
  • index (可选): 当前正在处理元素的索引。
  • array (可选): 调用了 map 方法的数组。
  • INLINECODE922da323 (可选): 执行 callback 时用作 INLINECODEf7bf8d31 的值。

返回值: 一个新数组,其中包含对数组中每个元素调用所提供函数的结果。
示例: 在这个例子中,我们创建了一个新数组 doubledNumbers,其中原始数组 [1, 2, 3, 4] 中的每个数字都乘以了 2。

JavaScript


CODEBLOCK_bbe7ffff

Output

[ 2, 4, 6, 8 ]

forEach() 和 map() 方法的区别

forEach()

map()

forEach() 方法不会基于给定的数组返回一个新的数组。

map() 方法返回一个全新的数组。

forEach() 方法返回 "undefined"。

map() 方法根据提供的回调函数返回新创建的数组。

forEach() 方法不返回任何内容,因此不能在这里应用方法链技术。

使用 map() 方法,我们可以链式调用其他方法,例如 reduce()、sort() 等。

它不会对空元素执行。

它不会改变原始数组。结论: 由于它们的工作方式差异很小,而且执行速度也没有显著的差异,所以现在是时候考虑该选择哪一个了。如果你需要返回值的优势,或者因为某种原因不想改变原始数组,那么请使用 map() ;否则,如果你只是对数组进行迭代或执行非转换性的操作,forEach() 可能是更好的选择。

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/49381.html
点赞
0.00 平均评分 (0% 分数) - 0