一. for循环

arr[index]可以改变原数组

二. forEach方法

  1. forEach方法的返回值是一个undefined;

  2. 在循环体内改变item的值不会影响原数组,而是只在循环体内生效;

  3. 而使用索引值操作arr[index]将会改变原数组;

  4. 在循环体内return数值没有产生什么影响。

  5. forEach()允许callback更改原始数组的元素。

三. map方法
  1. map方法的返回值是一个数组,该数组中元素的值来自遍历原数组时每一次的返回值,若循环体内没有return则元素都为undefined;

  2. 在循环体内改变item的值不会影响原数组,而是只在循环体内生效;

  3. 而使用索引值操作arr[index]将会改变原数组;

  4. 在循环体内return的数值将组成新数组并返回给a,对原数组没有影响。


总结:

map和forEach相同之处:

  遍历时改变item不能影响原数组;

  使用索引值操作arr[index]会改变原数组;

不同之处:

  forEach()允许callback更改原始数组的元素。map()返回新的数组


本文用到的截图工具:Snipaste

用到的调试工具:谷歌浏览器f12的sources的snippets

参考:https://blog.fundebug.com/2018/02/05/map_vs_foreach/

三种遍历的方法(map和forEach的区别)的更多相关文章

  1. List 三种遍历的方法

    学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象,测试代码如下: package ...

  2. 空数组在以下三种遍历中均不可更改:forEach、map和for...in

    首先,我们要知道对于forEach.map和for...in三种遍历,在不是空数组的情况下,要想实现更改原数组的方法,代码如下: var list = [1,2,3,4]; var list1 = [ ...

  3. Java中Map的三种遍历方法

    Map的三种遍历方法: 1. 使用keySet遍历,while循环: 2. 使用entrySet遍历,while循环: 3. 使用for循环遍历.   告诉您们一个小秘密: (下↓面是测试代码,最爱看 ...

  4. map的三种遍历方法!

    map的三种遍历方法!   集合的一个很重要的操作---遍历,学习了三种遍历方法,三种方法各有优缺点~~ /* * To change this template, choose Tools | Te ...

  5. Map三种遍历方式

    Map三种遍历方式 package decorator; import java.util.Collection; import java.util.HashMap; import java.util ...

  6. 大数据学习day13------第三阶段----scala01-----函数式编程。scala以及IDEA的安装,变量的定义,条件表达式,for循环(守卫模式,推导式,可变参数以及三种遍历方式),方法定义,数组以及集合(可变和非可变),数组中常用的方法

    具体见第三阶段scala-day01中的文档(scala编程基础---基础语法)  1. 函数式编程(https://www.cnblogs.com/wchukai/p/5651185.html): ...

  7. for 、foreach 、iterator 三种遍历方式的比较

    习惯用法 for.foreach循环.iterator迭代器都是我们常用的一种遍历方式,你可以用它来遍历任何东西:包括数组.集合等 for 惯用法: List<String> list = ...

  8. javase-常用三种遍历方法

    javase-常用三种遍历方法 import java.util.ArrayList; import java.util.Iterator; import java.util.List; public ...

  9. Jquery中each的三种遍历方法

    Jquery中each的三种遍历方法 $.post("urladdr", { "data" : "data" }, function(dat ...

  10. Map的三种遍历

    import java.util.*;/*** Map的三种遍历方式* @author Administrator**/public class m {public static void main( ...

随机推荐

  1. 将\u8BF7字符串转换为汉字

    转发自  将\u8BF7\u9009\u62E9 字符串转为汉字的代码_javascript技巧_脚本之家 链接:https://www.jb51.net/article/25187.htm

  2. HTML多媒体

    多媒体(一).插入音频.视频和flash在网页中插入音频.视频和flash都是使用embed标签. 语法: <embed src="多媒体文件地址" width=" ...

  3. drf从入门到飞升仙界 03

    APIView执行流程 基于APIView+JsonResponse编写接口 # APIView是drf提供给使用者的一个类,在使用drf写视图类,继承都是这个类及其子类 # APIView继承了Dj ...

  4. FSCapture怎么取色

    启动软件后 点击setting->Screen color Picker 此时箭头会变为一个吸管形状, 选择要吸取的颜色,点击鼠标左键 出现如图所示 完了复制这个十六进制颜色值

  5. Java数组之冒泡排序【重点】

    冒泡排序 冒泡排序是最为出名的排序算法之一,总共有八大排序! 冒泡的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较. 我们看到嵌套循环,应该立马就可以得出这个算法的时间复杂度为O(n2). ...

  6. sql 加工后--小文件解决方案

    10.24.8.5 # 切换用户 su - hive # 查看表文件 [hive@hadoop-0001 ~]$ hdfs dfs -ls /user/hive/warehouse/bibase.db ...

  7. UnityAndroid 获取根目录文件

    1. 在Unity打包时获取SD权限 2. Android根目录为 "/storage/emulated/0"; 代码: if (Directory.Exists("/s ...

  8. spring-configuration-metadata元数据与additional-spring-configuration-metadata元数据区别

    参考 https://docs.spring.io/spring-boot/docs/current/reference/html/appendix-configuration-metadata.ht ...

  9. k8s排错(Unhealthy)

      1,组件 Unhealthy 通过kubeadm安装好kubernetes v1.18.6 查看集群状态,发现组件controller-manager 和scheduler状态 Unhealthy

  10. mysql-8.0.28-winx64数据库win10系统安装步骤

    一.官网下载安装包 下载地址:https://dev.mysql.com/downloads/mysql/ ↓↓↓选择如下图版本↓↓↓ 二.解压安装包到本地 三.新建记事本创建my.ini配置文件 四 ...