网络技术 > 前端设计
jQuery数组处理详解
分类:前端设计    时间:2014-09-16    浏览:6687次

演示所用数组

var _mozi=[''墨家'',''墨子'',''墨翟'',''兼爱非攻'',''尚同尚贤''];

1. $.each遍历示例[常用]
Js代码 收藏代码
$.each(_mozi,function(key,val){
//回调函数有两个参数,第一个是元素索引,第二个为当前值
alert(''_mozi数组中 ,索引 : ''+key+'' 对应的值为: ''+val);
});

2. $.grep()过滤数组[常用]

$.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);

3. $.map()按给定条件转换数组[一般]

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);

4. $.inArray()判断值是否存在于数组中[常用]

var _exist=$.inArray(''墨子'',_mozi);
var _inexistence=$.inArray(''卫鞅'',_mozi)
if(_exist>=0){
alert(''墨子 存在于数组_mozi中,其在数组中索引值是: ''+_exist);
}
if(_inexistence<0){
alert(''卫鞅 不存在于数组_mozi中!,返回值为: ''+_inexistence+''!'');
}

5. $.merge()合并两个数组[一般]

//原生concat()可能比它还简洁点
_moziNew=$.merge(_mozi,[''鬼谷子'',''商鞅'',''孙膑'',''庞涓'',''苏秦'',''张仪''])
alert(''合并后新数组长度为: ''+_moziNew.length+''. 其值为: ''+_moziNew);

6. $.unique()过滤数组中重复元素[不常用]

var _h2Arr=$.makeArray(h2obj);
//将数组_h2Arr重复一次
_h2Arr=$.merge(_h2Arr,_h2Arr);
var _curLen=_h2Arr.length;
_h2Arr=$.unique(_h2Arr);
var _newLen=_h2Arr.length;
alert(''数组_h2Arr原长度值为: ''+_curLen+'' ,过滤后为: ''+_newLen+'' .共过滤 ''+(_curLen-_newLen)+''个重复元素'')

7. $.makeArray()类数组对象转换为数组[不常用]

var _makeArr=$.makeArray(h2obj);
alert(''h2元素对象集合的数据类型转换为: ''+_makeArr.constructor.name);

8. $.toArray()将所有DOM元素恢复成数组[不常用]

var _toArr=$(''h2'').toArray();
alert(''h2元素集合恢复后的数据类型是: ''+_toArr.constructor.name);

Copyright © 2014-2020 XfengNet.COM Inc. All Rights Reserved. 苏ICP备08014032号
返回顶部