js数组中foEach和map的用法详解 jq中的$.each和$.map
数组中foEach和map的用法详解
相同点:
1.都是循环遍历数组(仅仅是数组)中的每一项。
2.forEach() 和 map() 里面每一次执行匿名函数都支持3个参数:数组中的当前项value,当前项的索引index,原始数组array。
3.匿名函数中的this都是指Window。
4.IE6-8不兼容,通过在数组原型上扩展此方法可以实现
形式:
[].forEach(function(value,inede,array) {//...
});
[].map(function(value,inede,array) {//...
});Array.prototype.myForEach = function myForEach(callback,context){ context = context || window; if('forEach' in Array.prototye) { this.forEach(callback,context); return; } //IE6-8下自己编写回调函数执行的逻辑 for(var i = 0,len = this.length; i < len;i++) { callback && callback.call(context,this[i],i,this); }
}
forEach():
参数:value数组中的当前项, index当前项的索引, array原始数组;
数组中有几项,那么传递进去的匿名回调函数就需要执行几次。
无返回值,仅仅是遍历数组中的每一项,不对原来数组进行修改;但是可以自己通过数组的索引来修改原来的数组;
var data = [1,23,45,56,7,8];data.forEach(function(value,index,arr) {arr[index] = arr[index]*10;});
map():
有返回值,可以return出来。
参数:value数组中的当前项,index当前项的索引,array原始数组;
区别:map的回调函数中支持return返回值;相当于把数组中的每一项改变(并不影响原来的数组,只是相当于把原数组克隆一份,把克隆的这一份的数组中的对应项改变了);
var data = [10,230,450,560,70,80];var data1 = data.map(function(value,index,arr) {return value/10;});console.log(data);console.log(data1);
//(6) [10, 230, 450, 560, 70, 80]
//(6) [1, 23, 45, 56, 7, 8]
jQuery中的$.each和$.map
相比于原生js功能有了扩展,可以遍历对象。
形式:
$.each(obj,function(index,value) {//...
});
$.map(obj,function(index,value) {//...
});
$.each()
没有返回值。$.each()里面的匿名函数支持2个参数:当前项的索引i,数组中的当前项v。如果遍历的是对象,k 是键,v 是值。
$.each( { name: "assassin", age: 23 }, function(k, v){ console.log( "Key: " + k + ", Value: " + v );
});
/*
Key: name, Value: assassin
Key: age, Value: 23
*/
$.map()
有返回值,可以return 出来。$.map()里面的匿名函数支持2个参数和$.each()里的参数位置相反:数组中的当前项v,当前项的索引i。如果遍历的是对象,k 是键,v 是值。
$.map( { name: "assassin", age: 23 }, function(k, v){ console.log( "Key: " + k + ", Value: " + v ); });
//Key: assassin, Value: name
//Key: 23, Value: age
转载于:https://www.cnblogs.com/intelwisd/p/8521914.html
js数组中foEach和map的用法详解 jq中的$.each和$.map相关推荐
- python scatter参数详解_Python 中 scatter 函数参数及用法详解
Python 中 scatter 函数参数及用法详解 Python 中 scatter 函数参数及用法详解 这里有新鲜出炉的 Python 教程, 程序狗速度看过来! Python 编程语言 Pyth ...
- 关于GCC/LLVM编译器中的sanitize选项用处用法详解
关于GCC/LLVM编译器中的sanitize选项用处用法详解 编译器中sanitize选项原本来自google的开源C/C+ +工具集sanitizers项目, 包括了AddressSaniti ...
- STL 中map的用法详解
STL 中map的用法详解 Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可 ...
- C++ STL容器 —— map/multimap 用法详解
C++ STL容器 -- map/multimap 用法详解 写在前面:近期正在学习C++的STL容器,因此在这里做一下日志记录,主要介绍一些容器基本成员函数的用法, 配上实际用例,并不涉及原理.但别 ...
- python中tile的用法_python3中numpy函数tile的用法详解
tile函数位于python模块 numpy.lib.shape_base中,他的功能是重复某个数组.比如tile(A,n),功能是将数组A重复n次,构成一个新的数组,我们还是使用具体的例子来说明问题 ...
- python中mat函数_Python中flatten( )函数及函数用法详解
flatten()函数用法 flatten是numpy.ndarray.flatten的一个函数,即返回一个一维数组. flatten只能适用于numpy对象,即array或者mat,普通的list列 ...
- python scatter参数详解_Python中scatter函数参数及用法详解
最近开始学习Python编程,遇到scatter函数,感觉里面的参数不知道什么意思于是查资料,最后总结如下: 1.scatter函数原型 2.其中散点的形状参数marker如下: 3.其中颜色参数c如 ...
- C语言getline函数CSDN,c++中的两种getline用法详解
getline是C++标准库函数:但不是C标准库函数,而是POSIX(IEEE Std 1003.1-2008版本及以上)所定义的标准库函数(在POSIX IEEE Std 1003.1-2008标准 ...
- python的raw_ input是什么意思-对python中raw_input()和input()的用法详解
最近用到raw_input()和input()来实现即时输入,就顺便找了些资料来看,加上自己所用到的一些内容,整理如下: 1.raw_input() raw_input([prompt]) -> ...
最新文章
- 论文笔记 DNorm: disease name normalization with pairwise learning to rank
- SAP MM 物料库存转固定资产业务操作以及相关财务凭证
- 从程序员到项目经理(十一):每个人都是管理者
- 输入设备名输入输出设备的重定向
- java源码中的生词摘录成有道词典单词本
- 简历推荐_12位AI产品经理
- HTTP基本原理(简介)
- python对Excel合并单元格拆分
- linux 韦恩图两个,在线&在R中绘制韦恩图的几种方法 和 一些漂亮的venn图
- python爬取58同城租房信息,用selenium爬取58同城租房信息(万级数据)
- linux下zip文件密码破解Fcrackzip
- 原创 基于微信场地预约小程序 毕业设计 毕设 源码 源代码 欣赏 - 可用于羽毛球、篮球、乒乓、网球等预约小程序
- 后台Redirect,出现502错误
- 【数组】#66 加一
- Beam Search 简介
- 使用hutool进行Unicode转换
- dct变换的主要优点有哪些_【WIX维克斯】自动变速器AT、AMT、CVT、DCT谁更平顺
- MSVC编译器Warnings手册
- 计算机音乐好想你曲谱,好想你简谱
- 计算机专业考研真题,计算机专业考研真题讲解
热门文章
- ESLG.CommonUtility.NHibernateHelper的类型初始值设定项引发异常
- 图像技术在直播中怎么用
- Entity Framework Core 2.0的突破性变更
- 老树发新芽 靠PS之类的软件,上市30年的Adobe股价创新高
- Linux 第五天: (08月01日) Linux用户组管理
- 制作rhel的yum仓库
- Spring MVC 基础注解之@RequestMapping、@Controller、(二)
- SQL语句及索引优化
- Windows下的文件类型
- Android开机启动流程初探