var x = new Array(10);
$.inArray(10,x);
#Returns -1
我遇到过这个奇怪的问题,用$.inArray
检查数组中的值,非常简单。
但是,如果数组中只有一个值,inArray
将返回-1
。
如果我向数组添加另一个值,它将按预期工作。
这只发生在整数而不是字符串中。
发生了什么事??
答案 0 :(得分:4)
如果你想创建一个带有一个数字(10
)的数组,你应该使用括号文字:
var x = [10];
$.inArray(10,x);
或推送:
var x = new Array();
x.push(10);
显然,第一个更易读,写得更快。
使用给定元素初始化JavaScript数组,除非将单个参数传递给Array构造函数并且该参数是数字。请注意,此特殊情况仅适用于使用Array构造函数创建的JavaScript数组,而不适用于使用括号语法创建的数组文字。
如果传递给Array构造函数的唯一参数是整数,则新的空JavaScript数组及其长度设置为该数字 MDN
答案 1 :(得分:1)
我建议在JavaScript中检查数组的文档,链接:https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array
在您的情况下,使用:
var x = new Array(10);
它创建一个长度为10的数组,并且该数组的每个项目都是 undefined
我建议使用:
var x = [10];
这是一个数组,其中一个项目在索引0处具有值10。
答案 2 :(得分:0)
var x = new Array(10);
创建一个包含10个插槽的数组,而不是包含“10”