【www.gdgbn.com--jquery】

jquery $.grep map数组过滤与转换

$.grep(array, callback, [invert]) 过滤数组[常用]
解释: 使用过滤函数过滤数组元素.此函数至少传递两个参数(第三个参数为true或false,对过滤函数返回值取反,个人觉得用处不大): 待过滤数组和过滤函数. 过滤函数必须返回 true 以保留元素或 false 以删除元素. 另外,过滤函数还可以是可设置为一个字条串(个人不推荐,欲了解自行查阅);

$.grep(_mozi,function(val,key){
 //过滤函数有两个参数,第一个为当前元素,第二个为元素索引
 if(val=="墨子"){
  alert("数组值为 墨子 的下标是: "+key);
 }
});

var _mozigt1=$.grep(_mozi,function(val,key){
 return key>1;
});
alert("_mozi数组中索引值大于1的元素为: "+_mozigt1);

var _mozilt1=$.grep(_mozi,function(val,key){
 return key>1;
},true);
//此处传入了第三个可靠参数,对过滤函数中的返回值取反
alert("_mozi数组中索引值小于等于1的元素为: "+_mozilt1);


$.map(array,[callback])按给定条件转换数组 [一般]
解释:作为参数的转换函数会为每个数组元素调用, 而且会给这个转换函数传递一个表示被转换的元素作为参数. 转换函数可以返回转换后的值、null(删除数组中的项目)或一个包含值的数组, 并扩展至原始数组中.
这个是个很强大的方法,但并不常用. 它可以根据特定条件,更新数组元素值,或根据原值扩展一个新的副本元素.

var _maparra=$.map(_mozi,function(val){
 return val+"[新加]";
});
var _maparrb=$.map(_mozi,function(val){
 return val=="墨子" ? "[只给墨子加]"+val : val;
});
var _maparrc=$.map(_mozi,function(val){
 //为数组元素扩展一个新元素
 return [val,(val+"[扩展]")];
});
alert("在每个元素后面加"[新加]"字符后的数组为: "+ _maparra);
alert("只给元素 墨子 添加字符后的数组为: "+ _maparrb);
alert("为原数组中每个元素,扩展一个添加字符"[新加]"的元素,返回的数组为 "+_maparrc);

本文来源:http://www.gdgbn.com/wangyezhizuo/29734/