JS中的forEach、$.each、map方法推荐

 更新时间:2016年04月05日 16:15:48   投稿:jingxian  
下面小编就为大家带来一篇JS中的forEach、$.each、map方法推荐。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

forEach是ECMA5中Array新方法中最基本的一个,就是遍历,循环。例如下面这个例子:

[1, 2 ,3, 4].forEach(alert);

等同于下面这个for循环

var array = [1, 2, 3, 4];
for (var k = 0, length = array.length; k < length; k++) {
 alert(array[k]);
}

Array在ES5新增的方法中,参数都是function类型,默认有传参,forEach方法中的function回调支持3个参数,第1个是遍历的数组内容;第2个是对应的数组索引,第3个是数组本身。

因此,我们有:

[].forEach(function(value, index, array) {
  // ...
});

对比jQuery中的$.each方法:

$.each([], function(index, value, array) {
  // ...
});

会发现,第1个和第2个参数正好是相反的,大家要注意了,不要记错了。后面类似的方法,例如$.map也是如此。

var data=[1,3,4] ; 
var sum=0 ;
data.forEach(function(val,index,arr){
  console.log(arr[index]==val);  // ==> true
  sum+=val            
})
console.log(sum);          // ==> 8

map

这里的map不是“地图”的意思,而是指“映射”。[].map(); 基本用法跟forEach方法类似:

array.map(callback,[ thisObject]);

callback的参数也类似:

[].map(function(value, index, array) {
  // ...
});

map方法的作用不难理解,“映射”嘛,也就是原数组被“映射”成对应新数组。下面这个例子是数值项求平方:

var data=[1,3,4]

var Squares=data.map(function(val,index,arr){
  console.log(arr[index]==val);  // ==> true
  return val*val           
})
console.log(Squares);        // ==> [1, 9, 16]

注意:由于forEach、map都是ECMA5新增数组的方法,所以ie9以下的浏览器还不支持(万恶的IE啊),不过呢,可以从Array原型扩展可以实现以上全部功能,例如forEach方法:

if (typeof Array.prototype.forEach != "function") {
  Array.prototype.forEach = function() {
    /* 实现 */
  };
}

以上这篇JS中的forEach、$.each、map方法推荐就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 可拖拽组件slider.js使用方法详解

    可拖拽组件slider.js使用方法详解

    这篇文章主要为大家详细介绍了可拖拽组件slider.js的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-12-12
  • 微信小程序之购物车功能

    微信小程序之购物车功能

    这篇文章主要为大家详细介绍了微信小程序之购物车功能的相关资料,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Bootstrap CSS组件之输入框组

    Bootstrap CSS组件之输入框组

    这篇文章主要为大家详细介绍了Bootstrap CSS组件之输入框组(input-group),具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • javascript限制文本框只允许输入数字(曾经与现在的方法对比)

    javascript限制文本框只允许输入数字(曾经与现在的方法对比)

    很多时候需要用到限制文本框的数字输入,试过许多方法,都不太理想,遂决定自己实现一个来玩玩,接下来介绍曾经使用过的方法与自定义方法的对比,感兴趣的朋友可以了解下啊
    2013-01-01
  • window.showModalDialog()返回值的学习心得总结

    window.showModalDialog()返回值的学习心得总结

    本篇文章主要介绍了window.showModalDialog()返回值的学习心得。需要的朋友可以过来参考下,希望对大家有所帮助
    2014-01-01
  • JS实现页面跳转参数不丢失的方法

    JS实现页面跳转参数不丢失的方法

    这篇文章主要介绍了JS实现页面跳转参数不丢失的方法,结合实例形式对比分析了javascript URL加密函数escape()、encodeURI()与encodeURIComponent()的功能与相关使用技巧,需要的朋友可以参考下
    2016-11-11
  • 没有document.getElementByName方法

    没有document.getElementByName方法

    document.getElementByName方法没有document.getElementsByName得到的是标签的数组,下面为大家详细介绍下具体的使用,感兴趣的朋友可以参考下,希望对大家有所帮助
    2013-08-08
  • bootstrap datepicker的基本使用教程

    bootstrap datepicker的基本使用教程

    这篇文章主要介绍了bootstrap datepicker的基本使用教程,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-07-07
  • 让任务管理器中的CPU跳舞的js代码

    让任务管理器中的CPU跳舞的js代码

    下面的代码就是利用js控制cpu的占有率,实现时高时低效果
    2008-11-11
  • 封装微信小程序http拦截器过程解析

    封装微信小程序http拦截器过程解析

    这篇文章主要介绍了封装微信小程序http拦截器过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-08-08

最新评论