数组中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相关推荐

  1. python scatter参数详解_Python 中 scatter 函数参数及用法详解

    Python 中 scatter 函数参数及用法详解 Python 中 scatter 函数参数及用法详解 这里有新鲜出炉的 Python 教程, 程序狗速度看过来! Python 编程语言 Pyth ...

  2. 关于GCC/LLVM编译器中的sanitize选项用处用法详解

    关于GCC/LLVM编译器中的sanitize选项用处用法详解 ​ 编译器中sanitize选项原本来自google的开源C/C+ +工具集sanitizers项目, 包括了AddressSaniti ...

  3. STL 中map的用法详解

    STL 中map的用法详解 Map是STL的一个关联容器,它提供一对一(其中第一个可以称为关键字,每个关键字只能在map中出现一次,第二个可能称为该关键字的值)的数据处理能力,由于这个特性,它完成有可 ...

  4. C++ STL容器 —— map/multimap 用法详解

    C++ STL容器 -- map/multimap 用法详解 写在前面:近期正在学习C++的STL容器,因此在这里做一下日志记录,主要介绍一些容器基本成员函数的用法, 配上实际用例,并不涉及原理.但别 ...

  5. python中tile的用法_python3中numpy函数tile的用法详解

    tile函数位于python模块 numpy.lib.shape_base中,他的功能是重复某个数组.比如tile(A,n),功能是将数组A重复n次,构成一个新的数组,我们还是使用具体的例子来说明问题 ...

  6. python中mat函数_Python中flatten( )函数及函数用法详解

    flatten()函数用法 flatten是numpy.ndarray.flatten的一个函数,即返回一个一维数组. flatten只能适用于numpy对象,即array或者mat,普通的list列 ...

  7. python scatter参数详解_Python中scatter函数参数及用法详解

    最近开始学习Python编程,遇到scatter函数,感觉里面的参数不知道什么意思于是查资料,最后总结如下: 1.scatter函数原型 2.其中散点的形状参数marker如下: 3.其中颜色参数c如 ...

  8. C语言getline函数CSDN,c++中的两种getline用法详解

    getline是C++标准库函数:但不是C标准库函数,而是POSIX(IEEE Std 1003.1-2008版本及以上)所定义的标准库函数(在POSIX IEEE Std 1003.1-2008标准 ...

  9. python的raw_ input是什么意思-对python中raw_input()和input()的用法详解

    最近用到raw_input()和input()来实现即时输入,就顺便找了些资料来看,加上自己所用到的一些内容,整理如下: 1.raw_input() raw_input([prompt]) -> ...

最新文章

  1. 论文笔记 DNorm: disease name normalization with pairwise learning to rank
  2. SAP MM 物料库存转固定资产业务操作以及相关财务凭证
  3. 从程序员到项目经理(十一):每个人都是管理者
  4. 输入设备名输入输出设备的重定向
  5. java源码中的生词摘录成有道词典单词本
  6. 简历推荐_12位AI产品经理
  7. HTTP基本原理(简介)
  8. python对Excel合并单元格拆分
  9. linux 韦恩图两个,在线&在R中绘制韦恩图的几种方法 和 一些漂亮的venn图
  10. python爬取58同城租房信息,用selenium爬取58同城租房信息(万级数据)
  11. linux下zip文件密码破解Fcrackzip
  12. 原创 基于微信场地预约小程序 毕业设计 毕设 源码 源代码 欣赏 - 可用于羽毛球、篮球、乒乓、网球等预约小程序
  13. 后台Redirect,出现502错误
  14. 【数组】#66 加一
  15. Beam Search 简介
  16. 使用hutool进行Unicode转换
  17. dct变换的主要优点有哪些_【WIX维克斯】自动变速器AT、AMT、CVT、DCT谁更平顺
  18. MSVC编译器Warnings手册
  19. 计算机音乐好想你曲谱,好想你简谱
  20. 计算机专业考研真题,计算机专业考研真题讲解

热门文章

  1. ESLG.CommonUtility.NHibernateHelper的类型初始值设定项引发异常
  2. 图像技术在直播中怎么用
  3. Entity Framework Core 2.0的突破性变更
  4. 老树发新芽 靠PS之类的软件,上市30年的Adobe股价创新高
  5. Linux 第五天: (08月01日) Linux用户组管理
  6. 制作rhel的yum仓库
  7. Spring MVC 基础注解之@RequestMapping、@Controller、(二)
  8. SQL语句及索引优化
  9. Windows下的文件类型
  10. Android开机启动流程初探