1.$.map(data,function(item,index){return XXX})处理每一个元素的函数。第一个参数是数组元素,第二个参数是该元素的索引值。
遍历data数组中的每个元素,并按照return中的计算方式 形成一个新的元素,放入返回的数组中
eg1:
var b = $.map( [55,1,2], function( item,index ) { return { "label": item, "value": index } });
b=[{'label':'55','value':0},{'label':'1','value':1},{'label':'2','value':2}]
eg2:
var array = [0, 1, 52, 97]; array = $.map(array, function(a, index) { return [a - 45, index]; }); //输出为: //[-45, 0, -44, 1, 7, 2, 52, 3]
2.$.grep():
grep()方法用于数组元素过滤筛选
grep(array,callback,invert)
array:待过滤数组;
callback:处理数组中的每个元素,并过滤元素,该函数中包含两个参数,第一个是当前数组元素的值,一个是当前数组元素的下标,即元素索引值。此函数应返回一个布尔值。另外,此函数可设置为一个字符串,当设置为字符串时,将视为“lambda-form”(缩写形式?),其中 a 代表数组元素,i 代表元素索引值。如“a > 0”代表“function(a){ return a > 0; }”
invert:布尔型可选项,默认值false,值为true或false, 如果 “invert” 为 false 或为设置,则函数返回数组中由过滤函数返回 true 的元素,当”invert” 为 true,则返回过滤函数中返回 false 的元素集。
var arr=$.grep([0,1,2,3,4,5,6],function(n,i){
return n>2
});
上面的例子返回[3,4,5,6],但是我们给invert的值为true,例如
var arr=$.grep([0,1,2,3,4,5,6],function(n,i){
return n>2
},ture);
所以现在返回的是[0,1,2],也就是被callback函数过滤掉的元素。
3:
$.inArray()
方法类似于JavaScript的原生.indexOf()
方法,没有找到匹配元素时它返回-1。如果数组第一个元素在匹配value
,$.inArray()
返回0。
因为JavaScript将0视为false(即 0 == false, 但是 0 !== false),如果我们检查在array
中存在value
,我们只需要检查它是否不等于(或大于)-1。