forEach和map的区别

2019-12-04  本文已影响0人  丁先生_b64b

https://segmentfault.com/a/1190000013368741?utm_source=channel-hottest
forEach的执行速度更快

JavaScript中Map和ForEach的区别

                                                                                        javascript

 阅读约 6 分钟

译者按:惯用Haskell的我更爱map。

原文:JavaScript — Map vs. ForEach - What’s the difference between Map and ForEach in JavaScript?

译者:Fundebug

为了保证可读性,本文采用意译而非直译。另外,本文版权归原作者所有,翻译仅用于学习。

如果你已经有使用JavaScript的经验,你可能已经知道这两个看似相同的方法:Array.prototype.map()和Array.prototype.forEach()。

那么,它们到底有什么区别呢?

定义

我们首先来看一看MDN上对Map和ForEach的定义:

forEach(): 针对每一个元素执行提供的函数(executes a provided function once for each array element)。

map(): 创建一个新的数组,其中每一个元素由调用数组中的每一个元素执行提供的函数得来(creates a new array with the results of calling a provided function on every element in the calling array)。

示例

下方提供了一个数组,如果我们想将其中的每一个元素翻倍,我们可以使用map和forEach来达到目的。

letarr = [1,2,3,4,5];

ForEach

注意,forEach是不会返回有意义的值的。

我们在回调函数中直接修改arr的值。

arr.forEach((num, index) =>{returnarr[index] = num *2;});

执行结果如下:

// arr = [2, 4, 6, 8, 10]

Map

letdoubled = arr.map(num=>{returnnum *2;});

执行结果如下:

// doubled = [2, 4, 6, 8, 10]

上一篇 下一篇

猜你喜欢

热点阅读