jQuery map方法

map遍历,js和jQuery的比较

先定义一个数组,和伪数组

         //定义一个数组
        var arr = [1, 3, 5, 7, 9];
        //定义一个伪数组(对象)
        var obj = {0:2, 1:4, 2:6, 3:8, 4:10, length:5};

利用原生js的map方法来遍历数组

 /*
        * 第一个参数:当前遍历到的元素(value)
        * 第二个参数:当前遍历到的索引(index)
        * 第三个参数:当前被遍历到的数组(array)
        * */
        arr.map(
            function(value,index,array){
                console.log(index,value,array)
            }
        );

运行结果log:成功
在这里插入图片描述
利用原生js的map方法来遍历伪数组
第三个参数:当前被遍历到的数组:obj

        arr.map(
            function(value,index,obj){
                console.log(index,value,array)
            }
        );

运行结果:失败
在这里插入图片描述
利用原生jQuery的map方法来遍历数组 arr

        /*第一个参数:要遍历的数组名称 arr
          第二个参数:没遍历一个函数之后执行的回调函数 function
          回调函数的参数:
                 第一个参数:遍历到的元素 value
                 第二个参数:遍历到的索引
        */
        $.map(arr,function(value,index){
            console.log(index,value);

        })

执行结果:成功
在这里插入图片描述
利用原生jQuery的map方法来遍历伪数组 obj

//第一个参数:要遍历的数组名称 obj
        $.map(obj,function(value,index){
            console.log(index,value);

        })

运行结果:成功
在这里插入图片描述
注:
和jQuery中的each静态方法一样,map静态方法也可以遍历伪数组
each和map 的区别1:
each静态方法的默认返回值是,遍历谁就返回谁
map静态方法的默认返回值是,一个空数组
我们var一个res变量来接收遍历结果并输出到控制台

//each
       var res =  $.each(obj,function(index,value)
        {
            //console.log(index, value);
        });
        console.log(res);

each运行结果
在这里插入图片描述

//map
 var res2 = $.map(obj,function(value,index){
           // console.log(index,value);
        })
        console.log(res2);

map运行结果
在这里插入图片描述

each和map 的区别2:
注:
map 的静态方法可以在回调函数中通过return,对遍历的数组进行处理,然后生成一个新的数组返回。
each 的静态方法不支持在回调函数中对遍历数组的再处理。

返回值结果求和例:

        var res = $.map(obj,function(value,index){
            console.log(index,value);
            return value + index;
        })
        console.log(res);

map运行结果:
2
5
8
11
14
分别是obj数组的两个参数的和
0+2
1+4
2+6

在这里插入图片描述
each运行结果

 var res2 =  $.each(obj,function(index,value)
        {
            console.log(index, value);
            return value + index;
        });
                console.log(res2);

each方法return求和结果:
数组没变,没进行再次组合运算

2
4
6
8
10


在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值