1、相同点

1) 都是循环遍历数组中的每一项。

2) 每次执行匿名函数都支持三个参数,参数分别为item(当前每一项),index(索引值),arr(原数组)。

3) 匿名函数中的this都是指向window。

4)只能遍历数组。

2、不同点

1) map()会分配内存空间存储新数组并返回,forEach()不会返回数据。

2) forEach()允许callback更改原始数组的元素,map()返回新的数组,map() 不会对空数组进行检测。

二、forEach和map有相同值的区别

相同处:forEach 和 map都相当于封装好的单层for循环,三个值都相同。

不同处:

1、forEach()方法没有返回值,而map()方法有返回值。

2、forEach遍历通常都是直接引入当前遍历数组的内存地址,生成的数组的值发生变化,当前遍历的数组对应的值也会发生变化。

3、map遍历的后的数组通常都是生成一个新的数组,新的数组的值发生变化,当前遍历的数组值不会变化。

4、总的来说 map 的速度大于forEach。

三、使用场景

1. forEach适合于你并不打算改变数据的时候。

2. map()适用于你要改变数据值的时候。不仅仅在于它更快,而且返回一个新的数组。这样的优点在于你可以使用复合(composition)(map(), filter(), reduce()等组合使用)。

性能上来说for>forEach>map

foreach和map的区别相关推荐

  1. [JS] for-each和map()的区别

    先说下for-each与for-of还有for-in的区别. for-of和for-in都是对对象操作的,而for-each和map()是对数组进行操作的. for-in的使用:对于一个数组里的每一个 ...

  2. JS数组中 forEach() 和 map() 的区别

    JS数组中 forEach() 和 map() 的区别 Array中 Array.forEach()和 Array.map()方法之间的区别. forEach()和map()方法通常用于遍历Array ...

  3. vue forEach和map的区别

    记录工作中遇到的问题,选择右边数组一项进行删除,forEach和map的区别就出来了 1.刚开始是foreach写的,效果没出来 this.rightTree:表示右边的数组this.oriFathe ...

  4. 数组中的forEach和map的区别

    大多数情况下,我们都要对数组进行遍历,然后经常用到的两个方法就是forEach和map方法. 先来说说它们的共同点 相同点 都是循环遍历数组中的每一项 forEach和map方法里每次执行匿名函数都支 ...

  5. forEach 与 map 的区别

    forEach(item, index,arr): 用于调用数组的每个元素,并将元素传递给回调函数 形象介绍: 假设一个数组,每个元素是一个人,你面前站了一排人 forEach 就是你按顺序一个一个跟 ...

  6. 原生JS forEach()和map()遍历的区别以及兼容写法

    一.原生JS forEach()和map()遍历 共同点: 1.都是循环遍历数组中的每一项. 2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项item,当前 ...

  7. forEach、map、filter、some、every、find之间的区别

    前言: 从一开始学了javascript中的for循环遍历方法,到后来了解到forEach.vue中的v-for.map等方法,经常会搞不清楚其中的区别,今天就来粗略的解释一下, for循环我就不说了 ...

  8. JS的forEach和map方法的区别

    一.前言 forEach()和map()两个方法都是ECMA5中Array引进的新方法,主要作用是对数组的每个元素执行一次提供的函数,但是它们之间还是有区别的.jQuery也有一个方法$.each() ...

  9. forEach,map和filter的区别

    forEach,map和filter的区别 这三种都是对数据进行循环的 听说for循环已经烂大街了所以我赶紧补习一下别的 1.forEach循环,循环数组中每一项并进行简单操作,没有返回值 let a ...

最新文章

  1. 单片机开发工程师需要学哪些,单片机工作的基本条件
  2. sql查询远程数据库的表的数据并填充到本地数据库的表
  3. cisco路由器灌IOS
  4. java都市男人心痒痒_说的男人心痒痒的情话 让男人心痒痒的话,谁能帮我弄几句呀?...
  5. GPUImageMovieWriter实现暂停录制,重新录制
  6. js课程 5-14 js如何实现控制动画角色走动
  7. Go: init()执行顺序问题
  8. linux怎么取消文件隐藏命令,Linux基础命令:显示隐藏的文件
  9. Android事件分发溯源详解
  10. 商品管理后台发布商品时,规格值组合的前端交互的实现逻辑
  11. UITableView知识梳理须知—(一)
  12. “滴血验癌”?昔日“女乔布斯”被控诈骗!身价估值从290亿元直降为0!或面临20年刑期...
  13. 基于 PostgreSQL 的 EMQ X Auth ACL
  14. 华为最强AI芯片麒麟980发布:全球首款7nm手机芯片,双核NPU,6项世界第一
  15. 分布式日志收集系统: Facebook Scribe之配置文件
  16. 测试化妆品真假软件,检验化妆品真假app怎么用
  17. HTML学习教程之终极篇
  18. 第四章网页文字编排设计
  19. 稻米之缘农耕稻作文化 国稻种芯-万祥军:影响中国历史走向?
  20. 运维人故障定责甩锅话语指南

热门文章

  1. 计算时间差(精确到毫秒)(getTime()方法)
  2. 快播活该被抓,跟公诉人是谁无关
  3. linux 主分区转换 lvm,求教linux下 主分区和逻辑分区之间如何转换
  4. 朴應南 退庵 焚其廬而出之
  5. 数据分析(二)之matplotlib绘制其他图形
  6. 一个4分钟0台词的动画片却虐哭317万网友!
  7. mysql自带的邮件发送功能_Python实现的查询mysql数据库并通过邮件发送信息功能...
  8. 电锯惊魂6果然让我失望了
  9. 【Unity2D好项目分享】用全是好活制作横版卷轴射击游戏①简单制作滚动卷轴以及玩家移动
  10. 使用git的心得感悟 杂烩