2016-08-19 58 views
-4
var arr = ["a","b","c","d","e"]; 

我如何搜索一個值是否存在於上面的javascript/jquery中?Javascript/jQuery搜索

$.inArray不工作,總是返回-1

+0

當你試圖'$ .inArray'發生了什麼? –

+1

@羅伯特哥倫比亞它始終返回-1 – MATH000

+2

這可能意味着它不存在 – Li357

回答

0

使用包括功能:

arr.includes('c') 
true 
arr.includes('x') 
false 
0

自定義功能

function contains(arr, obj) {   
    var i = arr.length;   
    while (i--) {   
        if (arr[i] === obj) {   
            return true;   
        }   
    }   
    return false;   
}  

使用例如:

var arr = new Array(1, 2, 3);   
contains(arr, 2);//return true   
contains(arr, 4);//return false   
+0

事情是,有內建方法,不需要費時的線性搜索 – Li357

0

嘗試inArray,並應爲你工作:

var arr = ["a","b","c","d","e"]; 

if($.inArray(a, arr) != -1){ 
    alert('value is Array!'); 
} else { 
    alert('Not an array'); 
} 
+0

請確保將引號括起來 – Li357

0

嘗試像這樣, 假設你要檢查,如果「一」給定的陣列上存在「改編」,

if($.inArray("a",arr) != -1) 
{ 
    alert("'a' exixts in Array 'arr' "); 
} 
else 
{ 
    alert("'a' does'nt exixts in Array 'arr' "); 
} 

感謝

0

試試這個

var arr = ["a","b","c","d","e"]; 

var char = 'c'; 
arr.indexOf(char) // return 2 

var char = 'x'; 
arr.indexOf(char) // return -1 

if(arr.indexOf(char) != -1) { 
    // found 
} 

arr.findIndex(function(char){ return char === 'c' }) // return 2