Javascript jQuery$.inArray()返回0

Javascript jQuery$.inArray()返回0,javascript,jquery,arrays,Javascript,Jquery,Arrays,如果您有一个类似于('a','b')的数组,请选中$.inArray('a',thearray)您得到的索引为0,可能为false。所以你需要进一步检查结果,这很烦人 是否有一种快速的方法,我只能得到真/假,而不能得到索引 基本上,我在html5数据属性中有一个字符串:data options=“a,b,c”和javascript中的3个a,b,c变量,它们必须根据数据选项中的内容获取真/假值…根据-1进行测试: $.inArray('a', arr) !== -1 上述表达式将返回true/

如果您有一个类似于
('a','b')
的数组,请选中
$.inArray('a',thearray)您得到的索引为0,可能为false。所以你需要进一步检查结果,这很烦人

是否有一种快速的方法,我只能得到真/假,而不能得到索引


基本上,我在html5数据属性中有一个字符串:
data options=“a,b,c”
和javascript中的3个a,b,c变量,它们必须根据数据选项中的内容获取真/假值…

根据
-1
进行测试:

$.inArray('a', arr) !== -1
上述表达式将返回true/false

因为JavaScript将0视为松散的 等于false(即0==false,但为0 !==false),如果我们正在检查 如果数组中存在值,则 需要检查它是否不等于(或 大于-1

来源:

是的,与-1相比

if ($.inArray('a', thearray) === -1) {
    // not found
}
如果它真的让您感到不舒服,您可以将其包装到另一个函数中:

function myInArray(needle, haystack) {
    return $.inArray(needle, haystack) !== -1;
}

您可以通过调用
二进制NOT
操作符来实现这一点

if( ~$.inArray('a', thearray) ) {
}

此处详细解释:

“说明:在数组中搜索指定的值并返回其索引(如果未找到,则返回-1)。”-from:包含一种很好的实现方法。我喜欢在可重用组件中包装逻辑。荣誉@nick你在速度上失去的不仅仅是纯粹的男子气概来弥补。要丑化+澄清这一点,你还可以使用
!!~$。inArray('a',thearray)
@Alex:
强制结果为布尔值。因此,例如
-4
11
将变为
true
,而例如
0
将变为
false
。无论如何,我不推荐在这里使用它,因为它看起来很陌生:-)不,我像
a=!!~$一样使用它。inArray(“a”,thearray):D谢谢!