如果你有一个像('a', 'b')
这样的数组并检查$.inArray('a', thearray);
你得到的索引是0,可能是假的。所以你需要进一步检查结果,这很烦人......
是否有一个快速的方法槽,我只能得到真/假,而不是索引?
基本上我在html5数据属性中有一个字符串:data-options="a,b,c"
和javascript中的3个a,b,c个变量必须根据内部数据选项获取真/假值...
答案 0 :(得分:7)
您可以通过调用binary NOT
运算符来实现此目的。
if( ~$.inArray('a', thearray) ) {
}
在此详细解释:typeofnan.blogspot.com/2011/04/did-you-know-episode-ii.html
答案 1 :(得分:6)
针对-1
进行测试:
$.inArray('a', arr) !== -1
上面的表达式将返回true / false。
因为JavaScript将0视为松散 等于假(即0 ==假,但为0 !== false),如果我们正在检查 我们在数组中存在值 需要检查它是否不等于(或 大于)-1。
答案 2 :(得分:4)
是的,与-1相比。
if ($.inArray('a', thearray) === -1) {
// not found
}
如果它真的让你烦恼,你可以将它包装到另一个函数中:
function myInArray(needle, haystack) {
return $.inArray(needle, haystack) !== -1;
}