• 技术文章 >web前端 >js教程

    JavaScript中的forEach与$.each以及map方法的详解

    黄舟黄舟2017-11-16 15:17:53原创1316
    在我们之前的文章中我们给大家介绍了关于php中foreach语句的详解,以及foreach与each的使用介绍,那么我们今天大家介绍关于JS中orEach与$.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() {
        /* 实现 */
      };
    }

    总结:

    本文详细介绍了JavaScript中的forEach与$.each以及map方法,他们的使用基本上都是类似了,可以根据自己需要来进行选择!
    相关推荐:

    JS中foreach与each的简单介绍


    JavaScript中Foreach语法详解


    javascript中FOREACH数组方法使用示例

    以上就是JavaScript中的forEach与$.each以及map方法的详解的详细内容,更多请关注php中文网其它相关文章!

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:JavaScript forEach .each
    上一篇:24 个 JavaScript 面试题 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • 一文聊聊Node多进程模型和项目部署• 详解angular中操作DOM元素的方法• 聊聊怎么用node写入读取文件内容• Angular13+ 开发模式太慢怎么办?原因与解决方法介绍• 聊聊Node中怎么用async函数
    1/1

    PHP中文网