jQuery $ .inArray()返回0

Ale*_*lex 3 javascript arrays jquery

如果你有一个像这样的数组('a', 'b')并检查$.inArray('a', thearray);你得到的索引是0,可能是假的.所以你需要进一步检查结果,这很烦人......

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

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

jAn*_*ndy 7

您可以通过调用binary NOT运算符来实现此目的.

if( ~$.inArray('a', thearray) ) {
}
Run Code Online (Sandbox Code Playgroud)

这里详细解释:typeofnan.blogspot.com/2011/04/did-you-know-episode-ii.html

  • 你在速度上的损失超过了纯粹,纯粹的男子气概. (4认同)

Šim*_*das 6

测试-1:

$.inArray('a', arr) !== -1
Run Code Online (Sandbox Code Playgroud)

上面的表达式将返回true/false.

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

资料来源:http://api.jquery.com/jQuery.inArray/