js中 map 遍历数组
forEach()和map()都是遍历数组的方法,用法类似,但是还是有很大区别:
相同点:
1.都是循环遍历数组中的每一项;
2.在遍历中执行匿名函数都可以接收三个参数,分别为:遍历过程的每一项、遍历序号(索引值)、原数组;
3.执行的匿名函数中 的this都指向window。
不同点:
map():
根据遍历执行的匿名函数,对于原数组中的每个值产生一个对应的值,并返回一个新的数组,存在一个映射关系,并且不会改变原数组,不会对空数组进行检测。
var arr = [0,1,2,3,4];
var str = arr.map(function(i,index,arr){console.log(this);return ++i;
},this);
console.log(str); //结果为 [1,2,3,4,5]
forEach():只是按照顺序把数组中的元素传递给forEach中的匿名函数使用,对于空数组则不会调用到匿名函数。
var arr = [0,1,2,3,4];
var sum = 0;
var str = arr.forEach(function(i,index,arr){sum += i;console.log("sum的值为:",sum);
}) //执行5次,最终结果 10
**
js中 map 遍历数组
**
map 方法会迭代数组中的每一个元素,并根据回调函数来处理每一个元素,最后返回一个新数组。注意,这个方法不会改变原始数组。
在我们的例子中,回调函数只有一个参数,即数组中元素的值 (val 参数) ,但其实,你的回调函数也可以支持多个参数,譬如:元素的索引index、原始数组arr。
例子:使用 map 方法来为 oldArray 中的每一项增加3,并且在 newArray 中保存它们。 oldArray 不应该被改变。
var oldArray = [1,2,3,4,5];var newArray = oldArray.map(function(w){ return w+3;});输出结果为:[4,5,6,7,8]
js中 map 遍历数组相关推荐
- js中php遍历数组,vue.js如何遍历数组
vue.js遍历数组的方法:1.使用foreach循环,代码为[this.urls.forEach(item =>]:2.使用filter循环,代码为[return this.urls.filt ...
- JS中循环遍历数组的四种方式总结
1.for 循环: for (let index=0; index < someArray.length; index++) {const elem = someArray[index];// ...
- JS中循环遍历数组的几种常用方式总结
第一种:for循环,也是最常见的 最简单的一种,也是使用频率最高的一种,虽然性能不弱,但仍有优化空间 const arr = [11, 22, 33, 44, 55, 66, 77, 88]; for ...
- js中map遍历的三种方法
1.forEach遍历: map.forEach((key,val)=>{...//操作 } key是属性值,val是属性 2.for of遍历: for(let item of map){.. ...
- 数组中map遍历会改变原数组吗?
提到map用法,很多人想到forEach,那么这两种方法的区别是什么?会有人说,forEach会改变原数组:map不会改变原数组,返回一个新数组.事实是这样的吗?答案不是,这种说法不准确,是有条件的. ...
- JS中map()与forEach()的用法
JS中map()与forEach()的用法 相同点: 1.都是循环遍历数组中的每一项 2.每次执行匿名函数都支持三个参数,参数分别为item(当前每一项),index(索引值),arr(原数组) 3. ...
- js中常用的数组和字符串方法
一:js中常用的数组方法 <script>//函数声明式中的方法const arr=[1,3,6,9,15,19,16];//函数的所有方法 map(),reduce(),filter() ...
- js、jq遍历数组和对象
js遍历数组 1.普通for循环 var arr = [1,4,45,34,12,45,56,8]; for ( var i = 0; i <arr.length; i++){console.l ...
- 总结JS中常用的数组的方法大全
总结JS中常用的数组方法 JS中常用的数组方法总结 数组(Array)是一种复杂的数据类型,它属于Object(对象)类型,用来将一组数组合在一起,通过一个变量就可以访问一组数据.在使用数组时,经常会 ...
最新文章
- linux i18n修改,中文版英文版体现
- The Child and Sequence
- Spring Webflux –编写过滤器
- 一次mongoengine查询速度慢的优化
- centos下查看最大Socket连接数
- 成年人的21个规则,必须知道
- 在管家婆软件中项目管理教程
- matlab如何求无穷多项乘积的极限,求极限方法小结
- win10系统崩溃怎么修复
- DITHER 抖动算法
- NVIDIA Quadro专业图形显卡
- 持续集成与持续部署(五)01-TravisCI——使用简介-Travis CI 只支持 Github,提供的是持续集成服务 配置项目的.travis.yml文件
- File.separator 详解
- git Please tell me who you are解决方法
- 数字签名是什么?公钥和私钥是什么
- 静态HTML网页设计作品 代码质量好-上海介绍(5页) HTML+CSS+JavaScript(含源码)
- 2020校招薪酬大比拼
- U盘启动盘安装系统,使用Diskpart命令对磁盘进行分区
- Ubuntu-13.04-X86_64安装GT630驱动
- 应用Abaqus有限元软件中的cohesive单元模拟压头侵入地层随机断裂过程
热门文章
- 世界知识产权日测测你对数字版权的认知
- 从“数据合规官”到“安全岛”,将数据的安全合规进行到底
- vue产生二维码并且打包下载
- 2022年Q3咖啡行业数据分析(咖啡行业市场未来发展趋势)
- 同花顺快捷键以及使用方法
- 微服务(SpringCloud、Dubbo、Seata、Sentinel、SpringGateway)
- 任务驱动教学法在JAVA教学中的问题和策略
- Seek the Name, Seek the Fame(KMP-next数组详解)
- RationalDMIS 2020快速输出极半径和极角
- Java线程安全集合总结