jquery inarray makearray merge unique 数组函数操作实例
$.inarray(val,array)判断值是否存在于数组中[常用]
解释: 确定第一个参数在数组中的位置, 从0开始计数(如果没有找到则返回 -1 ).
记得indexof()方法了吗? indexof()返回字符串的首次出现位置,而$.inarray()返回的是传入参数在数组中的位置,同样的,如果找到的,返回的是一个大于或等于0的值,若未找到则返回-1.现在, 知道怎么用了吧. 有了它, 判断某个值是否存在于数组中,就变得轻而易举了.
var _exist=$.inarray('墨子',_mozi);
var _inexistence=$.inarray('卫鞅',_mozi)
if(_exist>=0){
alert('墨子 存在于数组_mozi中,其在数组中索引值是: '+_exist);
}
if(_inexistence<0){
alert('卫鞅 不存在于数组_mozi中!,返回值为: '+_inexistence+'!');
}$.merge(first,second)合并两个数组[一般]
解释: 返回的结果会修改第一个数组的内容——第一个数组的元素后面跟着第二个数组的元素.
这个方法是用jquery的方法替代原生concat()方法, 但功能并没有concat()强大, concat()可以同时合并多个数组
//原生concat()可能比它还简洁点
_mozinew=$.merge(_mozi,['鬼谷子','商鞅','孙膑','庞涓','苏秦','张仪'])
alert('合并后新数组长度为: '+_mozinew.length+'. 其值为: '+_mozinew);
$.unique(array)过滤数组中重复元素[不常用]
解释: 删除数组中重复元素. 只处理删除dom元素数组,而不能处理字符串或者数字数组.
第一次看到这个方法,觉得这是个很便捷的方法, 可以过滤重复, 哈, 多完美, 但仔细一看, 仅限处理dom元素. 功能8折了.所以, 我给它定义成了一个不常用的元素, 至少, 我用jquery以来没用到过它.
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)+'个重复元素')
$.makearray(obj) 将类数组对象转换为数组[不常用]
解释: 将类数组对象转换为数组对象, 类数组对象有 length 属性,其成员索引为0至 length-1.
这是个多余的方法, 无所不能的$本来就包含了这个功能. jquery官网上解释的非常模糊. 其实, 它就是将某个类数组对象(比如用getelementsbytagname获取的元素对象集合)转换成数组对象.
var _makearr=$.makearray(h2obj);
alert('h2元素对象集合的数据类型转换为: '+_makearr.constructor.name);//输出array
$(dom).toarray()将所有dom元素恢复成数组[不常用]
解释: 把jquery集合中所有dom元素恢复成一个数组;
并不常用的方法, 个人甚至觉得它和$.makearray一样多余.
var _toarr=$('h2').toarray();
alert('h2元素集合恢复后的数据类型是: '+_toarr.constructor.name);