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