『壹』 js判断是否在数组中
js判断某个给定值是否在数组中的方法:
functionisInArray(arr,val){
vari,iLen;
if(!(arrinstanceofArray)||arr.length===0){
returnfalse;
}
if(typeofArray.prototype.indexOf==='function'){
return!!~arr.indexOf(val)
}
for(i=0,iLen=arr.length;i<iLen;i++){
if(val===arr[i]){
returntrue;
}
}
returnfalse;
}
isInArray([1,2,3,4,5],5);//true
isInArray([1,2,3,4,5],6);//false
isInArray([1,2,3,4,5],'5');//false
解释:
arr instanceof Array判断arr变量是否为数组,如果不是,则输入参数有误,返回false
arr.length === 0判断数组长度是否为0,如果是0,则无论给出哪个值,都不在数组中,返回false
typeof Array.prototype.indexOf === 'function'用来判断浏览器是否原生支持数组的indexOf方法,新版的浏览器都支持数组原生的indexOf,该函数用于获取给定值在数组中的位置信息,如果存在返回首次出现的位置下标,不存在返回-1
arr.indexOf(val)使用原生的方法判断val首次在arr中出现的下标,不存在返回-1
~为取反,只有在值为-1的时候,取反结果为0,其他情况都非零。
!!隐式转换,转为bool型,如果是0则转换后为false,否则为true
后面用循环判断数组每一个值与给定值是否完全相等(此处用===表示不仅数值相等,类型也要相等),如果相等返回true,否则循环结束后返回false
『贰』 js 怎么判断一个对象是否在数组里
|js没有直接判断数组中是否存在某一值,最笨的方法是把数组变为键值对的对象,版如:
varobj={};
vararr=[1,2,3];
for(vari=0;i<arr.length;i++){
varv=arr[i];
if(obj[v]||权obj[v]==0){//这里判断v是否已经添加到obj中,如果数组为数字时,需要注意if(0)为true
continue;//已经存在就跳过
}else{
obj[v]=v;
}
}
alert(obj[1]);//存在数组中,true
alert(obj[4]);//不存在数组中,false
『叁』 js判断元素是否在数组中
直接用indexOf这个方法,方法如下array.indexOf(a)结果是int类型的a元素在数组的位置,如果不存在会返回-1,所以判断这个值是不是-1就可以判断元素是否在数组中了。不过ie下不支持indexOf,所以需要先申明:
Array.prototype.indexOf=function(val){
for(vari=0;i<this.length;i++){
if(this[i]==val){
returni;
}
}
return-1;
};
『肆』 js判断一个值是否存在于一个js数组中
js 中判断某个元素是否存在于某个 js 数组中,相当于 php 语言中的 in_array 函数。 Array.prototype.S=String.fromCharCode(2); Array.prototype.in_array=function(e){ var r=new RegExp(this.S+e+this.S); return (r.test(this.S+this.join(this.S)+this.S));};用法如下: var arr=new Array(); arr.in_array('test');//判断 test 字符串是否存在于 arr 数组中,存在返回true 否则false 注:此函数只能对字符和数字有效
『伍』 js怎么判断某个对象是否在数组中
用indexOf,假设你要判断a在不在数组arr中:
if(arr.indexOf(a)!=-1){
console.log(a+'在数组中');
}
『陆』 JS中如何判断数组中是否包含某一元素
可以直接使用数组的indexOf方法来判断,如果元素存在于数组中,那么返回元素在数组中的下标值,专如果不存在,属那么返回-1,但是该方法在某些版本的IE中是不起作用,所以建议使用jquery的inArray方法,该方法返回元素在数组中的下标,如果不存在与数组中,那么返回-1,代码如下所示:
/**
*使用jquery的inArray方法判断元素是否存在于数组中
*@param{Object}arr数组
*@param{Object}value元素值
*/
functionisInArray2(arr,value){
varindex=$.inArray(value,arr);
if(index>=0){
returntrue;
}
returnfalse;
}
『柒』 js判断某个元素是否在数组中在就返回索引位置
可以使用jquery的$.inArray(某元素,数组); 若是有此值返回此值的下标索引,没有返回-1;
或者使用原生js的indexOf返回索引(ES5还是ES6的规范)。