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谢谢!