如果数组包含单个元素,则jQuery inArray()返回-1

时间:2014-05-05 12:10:43

标签: javascript jquery

如果数组包含单个元素,则jQuery inArray返回-1。

var a = Array(1);
console.log($.inArray(1,a));

返回-1。但如果数组包含2个或更多元素,则它可以完美地运行。

var a = Array(1,2,3);
console.log($.inArray(1,a));

返回完美位置。

1 个答案:

答案 0 :(得分:6)

与您的想法相反,Array(1)不会创建包含元素1的数组,而是创建大小为1的数组。当你只传递一个参数并且它是一个整数时,这是你得到的特定行为。

来自the MDN

  

如果传递给Array构造函数的唯一参数是整数   在0到2 ^ 32-1(包括)之间,这将返回一个新的JavaScript数组   长度设置为该数字。

你应该几乎从不使用这个Array构造函数,它的奇怪行为导致许多错误,而且大多数都是无用的。使用此:

var a = [1];