如果数组包含单个元素,则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));
返回完美位置。
答案 0 :(得分:6)
与您的想法相反,Array(1)
不会创建包含元素1
的数组,而是创建大小为1
的数组。当你只传递一个参数并且它是一个整数时,这是你得到的特定行为。
来自the MDN:
如果传递给Array构造函数的唯一参数是整数 在0到2 ^ 32-1(包括)之间,这将返回一个新的JavaScript数组 长度设置为该数字。
你应该几乎从不使用这个Array
构造函数,它的奇怪行为导致许多错误,而且大多数都是无用的。使用此:
var a = [1];