2016-08-19 56 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