JavaScript Array和jQuery inArray导致第一个数组值出现问题

时间:2014-03-29 06:24:51

标签: javascript jquery arrays

基本上,这是我正在使用的代码的虚拟版本,我将解释发生的事情:

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'它现在告诉我它在阵列中。我可能错过了一些明显的东西,我不确定哈哈。但我只是有点困惑,为什么它不接受当第一个数组值是实际值时它是数组中的第一个?如果有人能够对此有所了解,我们将不胜感激!

2 个答案:

答案 0 :(得分:3)

使用$ .inArray时,您必须实际检查-1,否则第一个索引将返回0,这是假的

if ($.inArray(type, types) != -1) {
    alert('In Array');
} else {
    alert('Not In Array');
}

答案 1 :(得分:1)

  

$ .inArray()方法类似于JavaScript的原生.indexOf()   方法,因为它没有找到匹配时返回-1。如果   数组中的第一个元素与value匹配,$ .inArray()返回0。

https://api.jquery.com/jQuery.inArray/