首先是普通的数组(索引为整数的数组):
1 //$.map(arr,fn); 2 //对数组中的每个元素调用fn函数逐个进行处理,fn函数将处理返回最后得到的一个新的数组 3 var arr = [9, 8, 7, 6, 5, 4, 3, 2, 1]; 4 var newarr = $.map(arr, function (item) { return item * 2 }); 5 alert(newarr); 6 //$.each(array,fn)对数组array每个元素调用fn函数进行处理,没有返回值 7 var arr = [9, 8, 7, 6, 5, 4, 3, 2, 1]; 8 $.each(arr, function (key, value) { alert("key:" + key + "value:" + value); }); 9 //还可以省略function的参数,这个时候this可以得到遍历的当前元素的值 10 var arr = [9, 8, 7, 6, 5, 4, 3, 2, 1]; 11 $.each(arr, function () { alert(this); });
首先是普通的数组(索引为整数的数组):
1 //然后是索引为字符串的 键值对数组,针对这类数组, 2 // 一般采用$.each(array,fn)来操作: 3 //当然也可以使用无参的的function进行遍历; 4 var arr = { "jim": "11", "tom": "12", "lilei": "13" }; 5 $.each(arr, function (key, value) { alert("姓名:" + key + "年龄:" + value); });
前些天记录了java中for循环取map,发现用jquery的each一样可以取map(我称之为js的map,不要较劲),且顺序和map中顺序一致。废话少说,看代码
1234567891011var
map = {
地名: [
"北京"
,
"天津"
,
"上海"
],
民族: [
"汉族"
,
"藏族"
,
"维吾尔族"
]
};
$.each(map,
function
(key,values){
console.log(key);
$(values).each(
function
(){
console.log(
"\t"
+
this
);
});
});
如果安装了firebug,控制台输出如下树状结构: 地名 北京 天津 上海 民族 汉族 藏族 维吾尔族 注意:jquery中的$().each和$.each的区别,前者只能遍历数组,后者可以遍历数组和对象
实例:
$("#idGrads").html($.map(colors, function(x,i){ return "<div id=cl_" + i + " style='background:rgb(" + x.join(",") + ")'></div>"; }).join(""));