JS中地图和ForEach的差异是什么

  介绍

小编给大家分享一下JS中地图和ForEach的差异是什么,希望大家阅读完这篇文章后大所收获、下面让我们一起去探讨吧!

如果你已经有使用JavaScript的经验,你可能已经知道这两个看似相同的方法:<代码> Array.prototype.map() 和<代码> Array.prototype.forEach()。那么,它们到底有什么区别呢?

<强>定义

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

    <李> <代码> ForEach() :针对每一个元素执行提供的函数(执行一个函数提供> <强>示例

    下方提供了一个数组,如果我们想将其中的每一个元素翻倍,我们可以使用地图<代码> 和<代码> ForEach> 让arr=[1、2、3、4、5),

    <强> ForEach

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

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

    加勒比海盗。forEach ((num、索引)=比;{   返回arr(指数)=num * 2;}   );

    执行结果如下:

    //arr=(2、4、6、8、10]
    <强>地图
    =arr让翻了一番。地图(num=比;{   返回num * 2;   });

    执行结果如下:

    =//翻了一番(2、4、6、8、10]

    <强> jsPref 是一个非常好的网站用来比较不同的JavaScript函数的执行速度。

    这里是<代码> forEach() 和<代码> map() 的测试结果:

     js中地图和forEach的差异是什么

    可以看的到,在我到电脑上<代码> forEach() 的执行速度比<代码> map() 慢了70%。每个人的浏览器的执行结果会不一样。你可以使用下面的链接来测试一下:地图和forEach - jsPref。

    如果你习惯使用函数是编程,那么肯定喜欢使用<代码> map()> forEach() 会改变原始的数组的值,而<代码> map() 会返回一个全新的数组,原本的数组不受到影响。

    取决于你想要做什么。

    <代码> forEach 适合于你并不打算改变数据的时候,而只是想用数据做一些事情,比如存入数据库或则打印出来。

    让arr=[& # 39;一个# 39;& # 39;b # 39;, & # 39; c # 39;, & # 39; d # 39;];   arr.forEach((信)=比;{   console.log(信);   });//一个//b//c//d

    <代码> map() 适用于你要改变数据值的时候,不仅仅在于它更快,而且返回一个新的数组。这样的优点在于你可以使用复合(成分)(map()、过滤器(),减少()等组合使用)来玩出更多的花样。

    让arr=[1、2、3、4、5);   让arr2=加勒比海盗。地图(num=比;num * 2) .filter (num=比;num祝辞5);//arr2=(6、8、10)

    我们首先使用地图将每一个元素乘以2,然后紧接着筛选出那些大于5的元素。最终结果赋值给<代码> arr2>

      <李>能用<代码> forEach() 做的到的,<代码> map() 同样可以。反过来也是如此。 <李> <代码> map() 会分配内存空间存储新数组并返回,<代码> forEach() 不会返回数据。 <李> <代码> forEach() 允许<代码>调> 地图()返回新的数组。

    看完了这篇文章,相信你对JS中地图和forEach的差异是什么有了一定的了解,想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

    JS中地图和ForEach的差异是什么