我正在尝试检查一个我创建的数组,以确定某个值是否在数组中(任何地方)。如果值在数组中的任何位置,则需要执行一项操作,否则执行另一项操作。
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
时才是真的。
答案 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