一. 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. android cannot generate view binders android.databinding.tool.util.LoggedErrorException

    错误: Cannot resolve type 'viewModel'错误: cannot generate view binders android.databinding.tool.util.Lo ...

  2. windows使用问题(win10)

    常见问题 遇到修改文件夹名称被程序占用解决办法 1.ctrl+shift+esc进入任务管理器 2.打开性能-资源监视器 3.关联的句柄搜索框输入文件夹名称 4.搜查出来暂用文件夹程序选中右键将其关闭

  3. 实现分页数据请求的思路/Element UI(Plus)的分页模板(Vue3.x写法),(直接使用<script>引入vue.js)

    实现分页数据请求的思路/Element UI(Plus)的分页模板(Vue3.x写法),(直接使用<script>引入vue.js) 1. 效果图: 2.实现分页数据请求的思路:   分页 ...

  4. vue clickoutside 点击元素以外的区域隐藏该元素

    一.什么是VueUseVueUse不是Vue.use !!!它是一个基于 Composition API 的实用函数集合,下面是具体的一些用法二.如何引入import { 具体方法 } from '@ ...

  5. 6. C语言bool类型

    C89没有定义布尔类型,所以C语⾔判断真假时以0为假,⾮0为真.所以我们通常使⽤逻辑变量的做法: 1 //宏定义布尔类型 2 3 #define BOOL int 4 5 #define TRUE 1 ...

  6. HTML-background-image

    background-image:用于设置需要显示背景图片: 例如-->background-image:url(demo.jpg); 大家知道ulr()中是填写路径:(现在假设背景图片名字叫做 ...

  7. 20191317Exp3-免杀原理与实践

    20191317Exp3-免杀原理与实践 基础问题回答 1.1 杀软是如何检测出恶意代码的? 基于特征码进行检测:杀毒软件的病毒库记录了一些恶意软件的特征码,一段特征码就是一段或多段数据.如果一个可执 ...

  8. Windows日常快捷键

    Windows: 环境变量: Win+R,--> sysdm.cpl 计算器: Win+R,-->calc 服务:Win+R,-->services.msc 远程:Win+R,--& ...

  9. SQL-运算

    dual表可以进行运算select * from dual; 算数运算 + - * /select 5 + 6 as aaa ,6 - 3 as bbb ,5 * 7 as ccc ,9/2 as d ...

  10. libevent学习之入门--[02]从hello-world开始

    系列文章回顾 libevent学习之入门--[01]概述与安装 上一节介绍了libevent的下载和编译,从这节开始,我会从我学习的角度逐步探索libevent的源码,慢慢揭开它的神秘面纱. 面对几十 ...