当第一个元素匹配时,jQuery inArray不起作用

时间:2013-02-22 00:49:56

标签: javascript jquery arrays

我正在尝试检查一个我创建的数组,以确定某个值是否在数组中(任何地方)。如果值在数组中的任何位置,则需要执行一项操作,否则执行另一项操作。

var Arr = [false, false, false, false, false];
// It works with the following:
// Arr = [true, false, false, false, false]

if(!$.inArray(false, Arr))
{
        //False is not in the array at all - so continue with code  
}
else
{
       //False was found in the array
}

所以上面的代码就好像if语句是真的一样,但显然不是。

如果我将数组更改为:true, false, false, false, false,那么if语句应该是假的,因为它应该是。

基本上我需要这个代码只有在数组中的每个值都是true时才是真的。

2 个答案:

答案 0 :(得分:13)

$.inArray会返回项目的索引,如果找不到任何项目,则返回-1

if ($.inArray(false, Arr) > -1) {
  // found
} else {
  // not found
}

首先检查文档非常有用:http://api.jquery.com/jQuery.inArray/

答案 1 :(得分:5)

  

jQuery.inArray( value, array [, fromIndex ] )返回:数字

     

描述:在数组中搜索指定的值并返回   它的索引(如果没有找到则为-1)。

inArray返回一个整数!

因此当它在索引处为0时,它将是一个错误的值!

您需要检查> -1