jquery判断数组中是否存在某值-jquery形参操作(超全)

1. 字段创建

var arrayObj = new Array(); //创建一个数组
var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度
var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); //创建一个数组并赋值

需要注意的是,第二种创建链表的方式虽然指定了厚度,但实际上所有情况下字段都是可变的,也就是说,虽然指定的厚度为5,但在指定的厚度之外仍然可以存储元素。 注意:此时宽度将发生巨大变化。

2. 访问该字段的元素

var testGetArrValue=arrayObj[1]; //获取数组的元素值
arrayObj[1]= "这是新值"; //给数组元素赋予新的值

3、链表元素的添加

arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组结尾,并返回数组新长度
arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度
arrayObj.splice(insertPos,0,[item1[, item2[, . . . [,itemN]]]]);//将一个或多个新元素插入到数组的指定位置,插入位置的元素自动后移,返回""。

4、链表元素的删除

arrayObj.pop(); //移除最后一个元素并返回该元素值
arrayObj.shift(); //移除最前一个元素并返回该元素值,数组中元素自动前移
arrayObj.splice(deletePos,deleteCount); //删除从指定位置deletePos开始的指定数量deleteCount的元素,数组形式返回所移除的元素

5、链表的截取与合并

arrayObj.slice(start, [end]); //以数组的形式返回数组的一部分,注意不包括 end 对应的元素,如果省略 end 将复制 start 之后的所有元素
arrayObj.concat([item1[, item2[, . . . [,itemN]]]]); //将多个数组(也可以是字符串,或者是数组和字符串的混合)连接为一个数组,返回连接好的新的数组

java判断数组是否包含_jquery判断数组中是否存在某值_判断两个数组是否相等

6. 链表副本

arrayObj.slice(0); //返回数组的拷贝数组,注意是一个新的数组,不是指向
arrayObj.concat(); //返回数组的拷贝数组,注意是一个新的数组,不是指向

7. 链表元素排序

arrayObj.reverse(); //反转元素(最前的排到最后、最后的排到最前),返回数组地址
arrayObj.sort(); //对数组元素排序,返回数组地址

8.链表元素的字符串化

arrayObj.join(separator); //返回字符串,这个字符串将数组的每一个元素值连接在一起,中间用 separator 隔开。
toLocaleString 、toString 、valueOf:可以看作是join的特殊用法,不常用

9. 过滤链表

$.grep(array, callback, [invert]) 过滤数组,此函数至少传递两个参数(第三个参数为truefalse,表示是否取反): 待过滤数组和过滤函数. 过滤函数必须返回 true 以保留元素或 false 以删除元素
grep(array,callback,invert)
array:待过滤数组;
callback:处理数组中的每个元素,并过滤元素,该函数中包含两个参数,第一个是当前数组元素的值,一个是当前数组元素的下标,即元素索引 值,,此函数应返回一个布尔值 如$.grep(arr,function(value,index){return index>1;});。另外,此函数可设置为一个字符串,当设置为字符串时,将视为“lambda-form”(缩写形式?),其中 a 代表数组元素,i 代表元素索引值。如“a > 0”代表“function(a){ return a > 0; }”
invert:布尔型可选项,默认值false,值为truefalse。 如果 “invert” 为 false 或为设置,则函数返回数组中由过滤函数返回 true 的元素,当”invert” 为 true,则返回过滤函数中返回 false 的元素集。

10. 空链表

jquery判断数组中是否存在某值_java判断数组是否包含_判断两个数组是否相等

形式 1 - 拼接

var ary = [1,2,3,4];  
ary.splice(0,ary.length);  
console.log(ary); // 输出 [],空数组,即被清空了 

形式2----长度参数为0

var ary = [1,2,3,4];  
ary.length = 0;  
console.log(ary); // 输出 [],空数组,即被清空了  

形式3 - 参数为[]

var ary = [1,2,3,4];  
ary = []; // 赋值为一个空数组以达到清空原数组  

扩展1.使用grep删除指定值

var arr = [1, 2, 3, 4, 5];
var removeItem = 2;
     arr = $.grep(arr, function(value) {
    return value != removeItem;
});

2.链表遍历

与遍历jQuery对象的$().each()方法不同jquery判断数组中是否存在某值,该方法可以用来遍历任何对象(不仅仅是链表~)。 ounce函数有两个参数:第一个是对象的成员或者链表Index,第二个是对应的变量或者内容。 如果需要退出每次循环,可以让反弹函数返回false,其他返回值将被忽略

var _mozi=['墨家','墨子','墨翟','兼爱非攻','尚同尚贤']; //本文所用到的数组, 下同 
$.each(_mozi,function(key,val){ 
    //回调函数有两个参数,第一个是元素索引,第二个为当前值 
    alert('_mozi数组中 ,索引 : '+key+' 对应的值为: '+val); 
}); 

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

4.$.inArray(val,array) 判断值是否存在于链表中【常用】

说明:确定第一个参数在链表中的位置,从0开始计数(如果没有找到jquery判断数组中是否存在某值,返回-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+'!');
} 

5.$.merge(first,second) 合并两个字段[通常]

解释:返回的结果改变了第一个链表的内容——第一个链表的元素前面是第二个字段的元素。

这个方法是用jQuery替代原来的concat()方法,但是功能没有concat()强大,而且concat()可以同时合并多个字段。

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

6. $.unique(array) 过滤字段中重复的元素【不常用】

说明:删除链表中重复的元素。 它只处理删除 DOM 元素的链表,而不处理字符串或数字的链表。

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、判断链表中是否包含某个元素$.inArray()用法

可以使用$.inArray("element(string)",链表的名称)来判断链表是否包含元素。 当元素(字符串)存在时,返回该元素在链表中的下标。 如果不存在返回-1

 var array = ["asp.net", "asp.net mvc", "html5", "css3", "jquery", "JavaScript"];
 var index = $.inArray("asp.net mvc", array);   //包含返回下标,不包含返回-1,结果:index=1
 if (index >= 0) {
    console.log("数组array包含asp.net mvc下标为:" + index);
 } else { 
   console.log("数组array 不包含asp.net mvc下标为:" + index);
 }

8.链表删除一个元素 splice() 方法

splice() 方法向链表添加/删除项,然后返回删除的项。

该方法会改变原来的字段。

arrayObject.splice(索引,多少,item1,...,itemX)

需要索引。 一个整数指定添加/删除项的位置,使用正数指定从链表末尾开始的位置。

需要多少个。 要删除的项目数。 如果设置为 0,则不会删除该项目。

item1,...,itemX 可选。 添加到该字段的新项目。

返回值

数组包含已删除项目的新链接列表(如果有)。

//我们将创建一个新数组,并向其添加一个元素:
var arr = new Array(6)
arr[0] = "George"
arr[1] = "John"
arr[2] = "Thomas"
arr[3] = "James"
arr[4] = "Adrew"
arr[5] = "Martin"
document.write(arr + "
"
) //George,John,Thomas,James,Adrew,Martin arr.splice(2,0,"William") document.write(arr + "
"
) //George,John,William,Thomas,James,Adrew,Martin //将删除位于 index 2 的元素,并添加一个新元素来替代被删除的元素: var arr = new Array(6) arr[0] = "George" arr[1] = "John" arr[2] = "Thomas" arr[3] = "James" arr[4] = "Adrew" arr[5] = "Martin" document.write(arr + "
"
) //George,John,Thomas,James,Adrew,Martin arr.splice(2,1,"William") document.write(arr) //George,John,William,James,Adrew,Martin