判斷方法:1、使用indexOf()方法,語法「arr.indexOf(要找的值)」;2、使用「arr.find()」方法;3、使用「array.findIndex( )」方法;4、使用「$.inArray('要找的值',arr)」方法。
本教學操作環境:windows7系統、javascript1.8.5版、Dell G3電腦。
Js判斷陣列中是否存在某個元素
#方法一:indexOf(item,start);
Item:要找的值;
#start:可選的整數參數,缺省則從起始位子開始尋找。
indexOf();傳回元素在陣列中的位置,若沒有則回傳-1;
範例:var arr=['aaa','bbb' ,'ccc','ddd','eee'];
var a=arr.indexOf('ddd'); console.log(a); //3 var b=arr.indexOf('d'); console.log(b); //-1
我通常的用法:if(arr.indexOf(要找的元素)>-1){元素存在的操作};
indexOf()無法找出NaN
方法二:arr.find();
Arr.find()的參數是回呼函數,陣列所有元素會遍歷這個回呼函數,直到找到第一個傳回值為true的元素,然後傳回該元素否則回傳undefined;
var arr=['aaa','bbb','ccc','ddd','eee']; var a=arr.find(function(value,index,arr){ return value=='bbb'; }) console.log(a); //bbb,这里返回的不是true,而是返回值为true的这个元素;
我通常的用法:
arr.find(function(value){ If(value==要查找的值){ //所做的操作 } })
#方法三:array.findIndex();
findIndex()和find()的用法相似,find()回傳的是元素,findIndex回傳的是元素的位置。 findIndex();傳回第一個符合條件的陣列元素的位置,如果所有元素都不符合條件則傳回-1;findIndex(),陣列中的每一個元素都會呼叫一次函數,但是當條件傳回true時, findIndex()傳回符合條件的元素的位置,之後的值不會再呼叫執行函數。
var arr=['aaa','bbb','ccc','ddd','eee']; var a=arr.find(function(value,index,arr){ return value=='bbb'; }) console.log(a);//1,后面的值不会再调用函数。
說明:findIndex()和find()可以用來找出NaN;
var arr=['1','2','3',NaN]; var a=arr.find(function(value){ return isNaN(value); }) console.log(a); //NaN
方法四:
#使用jquery的inArray方法,此方法傳回數組在數組中的下標,如果不存在與數組中,那麼返回-1;
var arr=['aaa','bbb','ccc','ddd','eee']; var a= $.inArray('bbb',arr); console.log(a); //1
【推薦學習:javascript高級教程】
以上是javascript數組怎麼判斷是否存在某元素的詳細內容。更多資訊請關注PHP中文網其他相關文章!