Javascript InArray返回-1并具有匹配值

Javascript InArray返回-1并具有匹配值,javascript,jquery,arrays,Javascript,Jquery,Arrays,我遇到了这个奇怪的问题,用$检查数组中的值。inArray,非常简单 但是,如果数组中只有一个值,inArray返回-1。 如果我向数组中添加另一个值,它将按预期工作 这只发生在整数上,而不发生在字符串上 怎么回事 若要创建一个包含一个数字(10)的数组,应使用括号文字: var x = new Array(10); $.inArray(10,x); #Returns -1 或使用推送: var x = [10]; $.inArray(10,x); 显然,第一个更可读,写起来更快 JavaS

我遇到了这个奇怪的问题,用
$检查数组中的值。inArray
,非常简单

但是,如果数组中只有一个值,
inArray
返回
-1
。 如果我向数组中添加另一个值,它将按预期工作

这只发生在整数上,而不发生在字符串上


怎么回事

若要创建一个包含一个数字(
10
)的数组,应使用括号文字:

var x = new Array(10);
$.inArray(10,x);
#Returns -1
或使用推送:

var x = [10];
$.inArray(10,x);
显然,第一个更可读,写起来更快

JavaScript数组是用给定的元素初始化的,除非一个参数被传递给数组构造函数,并且该参数是一个数字。注意,这种特殊情况仅适用于使用数组构造函数创建的JavaScript数组,而不适用于使用括号语法创建的数组文本

如果传递给数组构造函数的唯一参数是一个整数,则将创建一个新的空JavaScript数组,并将其长度设置为该数字


若要创建一个包含一个数字(
10
)的数组,应使用括号文字:

var x = new Array(10);
$.inArray(10,x);
#Returns -1
或使用推送:

var x = [10];
$.inArray(10,x);
显然,第一个更可读,写起来更快

JavaScript数组是用给定的元素初始化的,除非一个参数被传递给数组构造函数,并且该参数是一个数字。注意,这种特殊情况仅适用于使用数组构造函数创建的JavaScript数组,而不适用于使用括号语法创建的数组文本

如果传递给数组构造函数的唯一参数是一个整数,则将创建一个新的空JavaScript数组,并将其长度设置为该数字


var x=新数组(10)
创建具有10个插槽的数组,而不是包含“10”的数组
var x=new array(10)创建一个有10个插槽的数组,而不是一个包含“10”的数组。我建议查看JavaScript中数组的文档,链接:

在您的情况下,通过使用:

var x = new Array();
x.push(10);
它创建一个长度为10的数组,数组中的每个项都未定义

我建议使用:

var x = new Array(10);

这是一个数组,索引0处有一个值为10的项。

我建议查看JavaScript中数组的文档,链接:

在您的情况下,通过使用:

var x = new Array();
x.push(10);
它创建一个长度为10的数组,数组中的每个项都未定义

我建议使用:

var x = new Array(10);

这是一个数组,索引0处有一个值为10的项。

您刚刚创建了一个长度为10的数组,而不是一个包含值10的数组,请参见提示:1<代码>控制台日志(x)
2。检查控制台中的空数组您刚刚创建了一个长度为10的数组,而不是包含值10的数组,请参阅提示:1<代码>控制台日志(x)2。检查控制台中的空数组