『壹』 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的規范)。