三种遍历的方法(map和forEach的区别)
一. for循环
arr[index]可以改变原数组

二. forEach方法
- 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的区别)的更多相关文章
- List 三种遍历的方法
学习java语言list遍历的三种方法,顺便测试各种遍历方法的性能,测试方法为在ArrayList中插入1千万条记录,然后遍历ArrayList,发现了一个奇怪的现象,测试代码如下: package ...
- 空数组在以下三种遍历中均不可更改:forEach、map和for...in
首先,我们要知道对于forEach.map和for...in三种遍历,在不是空数组的情况下,要想实现更改原数组的方法,代码如下: var list = [1,2,3,4]; var list1 = [ ...
- Java中Map的三种遍历方法
Map的三种遍历方法: 1. 使用keySet遍历,while循环: 2. 使用entrySet遍历,while循环: 3. 使用for循环遍历. 告诉您们一个小秘密: (下↓面是测试代码,最爱看 ...
- map的三种遍历方法!
map的三种遍历方法! 集合的一个很重要的操作---遍历,学习了三种遍历方法,三种方法各有优缺点~~ /* * To change this template, choose Tools | Te ...
- Map三种遍历方式
Map三种遍历方式 package decorator; import java.util.Collection; import java.util.HashMap; import java.util ...
- 大数据学习day13------第三阶段----scala01-----函数式编程。scala以及IDEA的安装,变量的定义,条件表达式,for循环(守卫模式,推导式,可变参数以及三种遍历方式),方法定义,数组以及集合(可变和非可变),数组中常用的方法
具体见第三阶段scala-day01中的文档(scala编程基础---基础语法) 1. 函数式编程(https://www.cnblogs.com/wchukai/p/5651185.html): ...
- for 、foreach 、iterator 三种遍历方式的比较
习惯用法 for.foreach循环.iterator迭代器都是我们常用的一种遍历方式,你可以用它来遍历任何东西:包括数组.集合等 for 惯用法: List<String> list = ...
- javase-常用三种遍历方法
javase-常用三种遍历方法 import java.util.ArrayList; import java.util.Iterator; import java.util.List; public ...
- Jquery中each的三种遍历方法
Jquery中each的三种遍历方法 $.post("urladdr", { "data" : "data" }, function(dat ...
- Map的三种遍历
import java.util.*;/*** Map的三种遍历方式* @author Administrator**/public class m {public static void main( ...
随机推荐
- linux 安装 talib 的完美姿势!
安装 TA-Lib $ wget http://prdownloads.sourceforge.net/ta-lib/ta-lib-0.4.0-src.tar.gz $ tar -zxvf ta-li ...
- python爬虫--房产数据爬取并保存本地
import requestsimport csvfrom bs4 import BeautifulSoupheaders={'user-agent':'Mozilla/5.0 (Windows NT ...
- pgsql 查询结果和查询行数
select count(*) over () as total, * from test
- centos6.x配置虚拟主机名及域名hosts
我们在本地安装了centos或者虚拟主机上安装了centos,主机名称默认是localhost,这样我们可以使用localhost访问我们的主机,在终端命令里默认的是[root@localhost ~ ...
- MySQL_demo_50道习题
title: MySQL_demo_50道习题 author: 杨晓东 permalink: MySQL_demo date: 2021-10-02 11:27:04 categories: - 投篮 ...
- 6. C语言bool类型
C89没有定义布尔类型,所以C语⾔判断真假时以0为假,⾮0为真.所以我们通常使⽤逻辑变量的做法: 1 //宏定义布尔类型 2 3 #define BOOL int 4 5 #define TRUE 1 ...
- Python中用eval将字符串转换为字典时候出错:NameError: name ‘null’ is not defined的解决方法
这两天在用python调用接口时,因为接口返回的是str类型的数据,形如: 因为这样的str类似字典,所以我想把它转为字典以便处理,使用的是eval来进行转换,如下: <pre name=& ...
- 用python3操作mysql数据库实现企业级产品参数查询
Python3 MySQL 数据库连接 - PyMySQL 驱动 一.什么是 PyMySQL? PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则 ...
- QLineEdit CSS样式
QLineEdit{ border:1px groove gray; border-radius:18px; padding:2px 4px } QLineEdit:!hover { border-s ...
- warmup --攻防世界
题目: (1)有一张图片和一个压缩包 发现压缩包里面有一张相同的图片,应该是已知明文攻击(相同的CRC) (2)使用软件爆破 虽然没能得到密码,手动中断后得到新的压缩包,发现里面的图片已经解密. (3 ...