Map官方定义:将一组数组转换为其他数组。

通俗一点说:也就是根据当前数组创建一个新的数组,怎么创建由自己来定义

Map的语法: $.map(arr,callback);

                  arr为当前数组,callback为要执行的方法也就是如何改变这个数组

下面我们做一个例子来实验一下:

    首先我们要声明一个数组,其中包括1,2,3,4,5,然后通过Map函数转换为2,4,6,8,10,的数组下面是相关代码:

 //声明一个数组
        var arr = [1, 2, 3];
        //将数组转换成另一个数组,第一个参数为要转换的数组,第二个参数为执行的方法
        var arr2 = $.map(arr, function (item) { return item * 2; });
         
//function(item)当中的参数item为当前数组的每一个元素。

创建arr2的数组,然后我们需要循环遍历输出此数组:

在jquery中没有foreach,那么我们需要用另一个函数来代替C#中的foreach,即each

each的语法: $.each(arr,function(){});

第一个参数为要循环的对象,第二个参数为执行的方法

也可以这么写:$("div").each(function(){});

这句代码的意思为:在所有div标签的元素当中执行后面的方法.

大致原理为:从第一个元素开始循环,循环完此元素,则开始找下一个元素,如果找到则返回true继续执行,相当于c#中的continue

如果没有找到则返回false,结束执行相当于C#中的break

方法中不传入参数则this就是当前的循环的中的元素

现在我们试着循环此数组:

 //遍历输出数组,each相当于foreach 第一个参数为要输出的数组,第二个参数为怎么输出,不传参则用this代替数组中的元素
        $.each(arr2, function () { alert(this); });
        //键值对的数组,键值对的数组用大括号
        var jian = { "myname": "王五", "age": 12 };
        $.each(jian, function (k, v) { alert(k + "为:" + v) });
        //如果只是普通的遍历用不带参数的方法,如果是键值对则用带参的.

 each数组还可以用于键值对数组的输出

$.each(jian, function (k, v){ alert(k + "为:" + v) });
k表示键 V 表示值

这大概相当于C#中的dictionary。

作者: 尹紫慧 发表于 2011-05-10 20:47 原文链接

推荐.NET配套的通用数据层ORM框架:CYQ.Data 通用数据层框架