时间:2021-05-26
•原理:
•高级浏览器支持forEach方法
语法:forEach和map都支持2个参数:一个是回调函数(item,index,list)和上下文;
•forEach:用来遍历数组中的每一项;这个方法执行是没有返回值的,对原来数组也没有影响;
•数组中有几项,那么传递进去的匿名回调函数就需要执行几次;
•每一次执行匿名函数的时候,还给其传递了三个参数值:数组中的当前项item,当前项的索引index,原始数组input;
•理论上这个方法是没有返回值的,仅仅是遍历数组中的每一项,不对原来数组进行修改;但是我们可以自己通过数组的索引来修改原来的数组;
•forEach方法中的this是ary,匿名回调函数中的this默认是window;
var ary = [12,23,24,42,1];var res = ary.forEach(function (item,index,input) { input[index] = item*10;})console.log(res);//-->undefined;console.log(ary);//-->会对原来的数组产生改变;•map:和forEach非常相似,都是用来遍历数组中的每一项值的,用来遍历数组中的每一项;
•区别:map的回调函数中支持return返回值;return的是啥,相当于把数组中的这一项变为啥(并不影响原来的数组,只是相当于把原数组克隆一份,把克隆的这一份的数组中的对应项改变了);
•不管是forEach还是map 都支持第二个参数值,第二个参数的意思是把匿名回调函数中的this进行修改。
var ary = [12,23,24,42,1];var res = ary.map(function (item,index,input) { return item*10;})console.log(res);//-->[120,230,240,420,10];console.log(ary);//-->[12,23,24,42,1]•兼容写法:
•不管是forEach还是map在IE6-8下都不兼容(不兼容的情况下在Array.prototype上没有这两个方法),那么需要我们自己封装一个都兼容的方法,代码如下:
PS:以上写法如有错误欢迎指正,^^
以上这篇JavaScript中的数组遍历forEach()与map()方法以及兼容写法介绍就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
在使用JavaScript编写代码过程中,可以使用多个方法对数组进行遍历;包括for循环、forEach循环、map循环、forIn循环和forOf循环等方法。
本文实例讲述了JavaScript遍历数组的三种方法map、forEach与filter。分享给大家供大家参考,具体如下:前言近一段时间,因为项目原因,会经常在
一、数组遍历的3个方法介绍1.foreach()foreach()是一个用来遍历数组中数据的最简单有效的方法。#example1:复制代码代码如下:显示结果:D
本文实例讲述了原生JSforEach()和map()遍历的区别、兼容写法及jQuery$.each、$.map遍历操作。分享给大家供大家参考,具体如下:一、原生
对数组的遍历大家最常用的就是for循环,ES5的话也可以使用forEach,ES5具有遍历数组功能的还有map、filter、some、every、reduce