【JQuery】map循环与each循环的对比学习

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jerry11112/article/details/84965860

前言

尽管是这两个方法是封装起来的,但是其思想尤为重要,将面向步骤过程操作,变成一个函数式的操作函数式编程是一个流水线生产模式!现在听着可能有点蒙蔽,那就和小编一起来搞定它吧!

1、map方法

$.map() 函数用于使用指定函数处理数组中的每个元素(或对象的每个属性),并将处理结果封装为 新的数组返回。

语法
$.map( object, callback )前边的object是对象或者数组,后边的callback是一个我们自己定义的函数!用来对我们的对象或者数组进行操作!

callback的写法一般为function(v,i)为函数传入两个参数:v是当前迭代的元素或属性值,i是当前迭代项的数组索引或对象属性名。 (元素对应的是索引)(属性值对应的是对象属性名)接下来分别举一个遍历数组的例子和一个对象的例子!

    var arr1 = [12, 3, 4, 0 - 9];
    var new_arr = $.map(arr1, function (v, i) {
        return v * 2;
    });
    alert(new_arr);
    
//返回的是[24,6,80,-18]


    var o = { name: "李光", age: 19, sex: "男" };
    $.map(o, function (k, v) {
        alert(k + "-----" + v);        
    });
    
    //	返回结果:李光-----name
				19-----age
				男-----sex

2、each方法

each() 方法为每个匹配元素规定要运行的函数。
提示:返回 false 可用于及早停止循环。

语法
$.each(object,function(index,element)) 这个同上,不做解释,下边的是一个例子!

    var o = { name: "李光", age: 19, sex: "男" };
    $.each(o, function (k, v) {
        alert(k + "-----" + v);            
    });
    //	返回结果:name-----李光
				age-----19
				sex-----男

综上所述,二者可以实现相同的功能,那么二者到底有什么区别呢,接下来用三句话总结一下!

map()方法主要用来遍历操作数组和对象,each()主要用于遍历jquery对象。
each()返回的是原来的数组,并不会新创建一个数组。
map()方法会返回一个新的数组。如果在没有必要的情况下使用map,则有可能造成内存浪费。

猜你喜欢

转载自blog.csdn.net/jerry11112/article/details/84965860
今日推荐