技术频道导航
HTML/CSS
.NET技术
IIS技术
PHP技术
Js/JQuery
Photoshop
Fireworks
服务器技术
操作系统
网站运营
卡卡网是专业的网站测速平台,网速测试,测试网站速度,就来卡卡网 ~
问题反馈网络日志

【DiyVM】沙田机房/香港云/回国CN2线路/AMD EPYC/39元一月5M/CN2海外云主机 24元/月BGP+CN2海外云 低至25元/月海外主机 低至$2/月

DiyVM:香港VPS惊爆价36元一月
★站长变现★特色悬浮小图标广告
5M CN2 GIA云主机 24元起
【转化好产品,官方高价收量】
一一一云主机 26元起一一一
官方高价收量,每日稳定结算

一一云主机 24元 3折起一一
AWS核心代理U充值 免注册开户
海外CN2云 低至$2.5/月
海外云低至2折 298/年
免费测试★APK免杀 谷歌过保护
官方收量CPA/CPS长期稳定

海外主机 5M CN2 低至$2/月
恒创科技 一 海外服务器 ● 高速稳定
★解决安装报毒★谷歌过保护机制
CN2 GIA/1000Mbps $111/月
超级签★免杀★加固★满意付款
全球云主机 3天试用再买

【菠萝云】香港4G内存99元,马上开通
亿人互联-津/京BGP托管租用/VPS
苹果签名/APP封装/远控免杀
10M CN2海外云VPS 53元/月
一一站长/主播好变现一一有流量就来
站长变现 特色悬浮小图标广告

实力产品变现
实力产品变现
实力产品变现
实力产品变现
实力产品变现
实力产品变现

赞助商

分类目录

赞助商

最新文章

本文介绍我们要用jQuery操作HTML,移除某class的div标签,但保留内...
在书写正则表达式时,* + ? 符号非常常见,但是它们又比较容易混淆。本文将用一...
本文我将给大家介绍如何用JS+CSS来实现可移动显示的图片背景效果。 
在一些商品展示的网页里,我们经常看到图片放大的效果。本文就给大家介绍一下,如何用...
本文介绍如何分别使用JS和jQuery两种方法来实现点击按钮复制文字到剪贴板,只...
本文介绍如何使用jquery-resizable调整表格(table)列宽。
本文介绍如何使用jquery-resizable插件调整左右/上下窗格大小。

搜索

JavaScript map()与forEach()方法的使用差异

作者:admin    时间:2021-9-29 17:11:56    浏览:311

在 JavaScript 中,forEachmap是两种最流行的处理数组的方法。这两种方法的主要目的是遍历数组。尽管它们看起来几乎相同,但它们之间存在某些差异。在本文中,我们将讨论JavaScript 中的mapforEach方法,我们还将通过它们之间的差异来了解何时使用它们。

 JavaScript map()与forEach()方法的使用差异

forEach方法

forEach方法允许你通过遍历数组的每个元素来执行函数。重要的是要注意该forEach方法不返回任何内容,因此,如果你尝试获取forEach方法的返回值,则会得到 undefined。相反,它允许你通过在数组的每个元素上应用回调函数来修改现有数组的值。由于它允许你修改源数组本身,因此它是一个 mutator 方法。

我们查看以下示例以了解forEach方法的工作原理。

  1. //a logging utility output text to the web page
  2. const output=(string)=>document.body.innerHTML+=`${string}<br/>`;
  3.  
  4. //an array of numbers
  5. let numberArray = [1, 2, 3, 4, 5];
  6.  
  7. //output the square of each number
  8. let returnValue = numberArray.forEach((num, index) => 
  9.   output(`${num} x ${num} = ${num * num}`);
  10. );
  11.  
  12. //the array hasn't changed
  13. output(numberArray);
  14. output(returnValue);

trying >>

示例中,我们计算数组所有元素的平方。对每个元素调用 forEach 方法,我们记录它的平方。这个辅助方法的返回值被忽略,原始数组不会改变。forEach的返回值始终为undefined

map方法

map方法与forEach方法非常相似——它允许你为数组的每个元素执行一个函数。但不同之处在于 map 方法使用该函数的返回值创建了一个新数组。map通过在源数组的每个元素上应用回调函数来创建一个新数组。由于map不改变源数组,我们可以说它是不可变的方法。

我们用map修改上面的示例。

  1. //a logging utility output text to the web page
  2. const output=(string)=>document.body.innerHTML+=`${string}<br/>`;
  3.  
  4. //an array of numbers
  5. let numberArray = [1, 2, 3, 4, 5];
  6.  
  7. //output the square of each number
  8. let returnValue = numberArray.map((num) => num * num)
  9.  
  10. //view the results
  11. output(numberArray);
  12. output(returnValue);

可以看到,numberArray数组保持不变,但map返回值是一个新数组,该数组是通过将 square 函数应用于数组的每个元素构建的。

map 函数的一个优点是它是可连接的。这意味着你可以连续调用多个map操作。这是一个连接示例,我们将每个数字乘以 2,将它们转换为字符串,然后在每个数字上加上一个美元符号。

  1. //a logging utility output text to the web page
  2. const output=(string)=>document.body.innerHTML+=`${string}<br/>`;
  3.  
  4. //an array of numbers
  5. let numberArray = [1, 2, 3, 4, 5];
  6.  
  7. //output the square of each number
  8. let returnValue = numberArray
  9.   .map((num) => num * 2)
  10.   .map((num) => num.toString())
  11.   .map((string) => "$"+string);
  12.  
  13. //view the results
  14. output(numberArray);
  15. output(returnValue);

输出结果

  • 1,2,3,4,5
  • $2,$4,$6,$8,$10

trying >>

x

map 和 forEach方法之间的差异

mapforEach之间的主要区别在于,map方法通过对数组的每个元素应用回调函数来返回一个新数组,而forEach方法不返回任何内容。

你可以使用forEach方法来改变源数组,但这并不是它真正的用途。相反,当你需要对数组的每个元素执行某些操作时,它非常有用。

map方法用于创建一个新数组,它是可连接的,你可以一个接一个地调用多个map操作。

forEach方法不返回任何内容,因此你不能将它与任何其他方法连接起来——它不可连接。

我应该使用哪一个,map还是forEach

现在,归结为这个问题,如何决定是否应该使用map还是forEach方法?

如果你打算通过应用某个函数来更改数组元素,则应该使用map方法,因为它不会修改原始数组并返回一个新数组。这样,原来的数组就完好无损。而如果您想遍历数组的所有元素并且不需要返回的数组,请使用forEach方法。

除此之外,功能非常相似。

结论

今天,我们讨论了 JavaScript 中两个有用的方法:mapforEach. 我们通过几个例子了解了它们之间的差异,并给出了一些使用建议,希望对大家有所帮助。

标签: map方法  forEach方法  
x
广告: CN2云主机 免费试用