基本上,这是我正在使用的代码的虚拟版本,我将解释正在发生的事情:
var types = ['type1', 'type2', 'type3', 'type4', 'type5'],
type = 'type1';
if ($.inArray(type, types)) {
alert('In Array');
} else {
alert('Not In Array');
}
它不在数组中,而如果我更改 type
值到“type2”或数组中的任何其他值,它表示它在数组中。现在,如果我在数组的开头添加一个空白值,如下所示:
var types = ['', 'type1', 'type2', 'type3', 'type4', 'type5']
输入 type
值返回到“type1”,它现在告诉我它在数组中。我可能错过了一些明显的东西,我不确定哈。但我只是有点困惑,当第一个数组值是实际值时,为什么它不接受它是数组中的第一个?如果有人能对此有所启发,我们将不胜感激!
最佳答案
使用 $.inArray 时,您必须实际检查 -1
,否则第一个索引将返回 0
,这是错误的
if ($.inArray(type, types) != -1) {
alert('In Array');
} else {
alert('Not In Array');
}
关于JavaScript Array 和 jQuery inArray 导致第一个数组值出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22727845/