Javascript 具有值和键的数组中存在语法错误

Javascript 具有值和键的数组中存在语法错误,javascript,Javascript,这条线怎么了。 控制台中显示未捕获语法错误 var aqar= new Array(1:'1_2',2:'5_1',3:'3_3'); 这是一种构造数组的奇怪方法。尝试: var aqar = ['1_2','5_1','3_3']; aquar[0]; //1_2 aquar[1]; //5_1 aquar[2]; //3_3 或者,如果您打算使用对象: var aquar = { "1": "1_2", "2": "5_1", "3": "3_3" } 您正在

这条线怎么了。 控制台中显示
未捕获语法错误

 var aqar= new Array(1:'1_2',2:'5_1',3:'3_3');

这是一种构造数组的奇怪方法。尝试:

var aqar = ['1_2','5_1','3_3'];
aquar[0]; //1_2
aquar[1]; //5_1
aquar[2]; //3_3
或者,如果您打算使用对象:

var aquar = {
    "1": "1_2",
    "2": "5_1",
    "3": "3_3"
}

您正在JavaScript中混合数组和对象

定义数组时,数组没有键:

var aqar = new Array('1_2', '5_1', '3_3');  // These lines
                                            // do the same
var aqar = ['1_2', '5_1', '3_3'];           // things
否则,您需要定义一个对象:

var aqar = { 1 : '1_2', 2 : '5_1', 3 : '3_3' };

这不是有效的数组语法,而且从来都不是

如果要使数组基于一,请使用
null
作为第一个元素。另外,在不需要执行以下操作时,不要使用
new Array()

var aqar = [null,'1_2','5_1','3_3];

如果您真的试图创建一个数组,通常JavaScript数组是基于
0
,而不是基于
1
,现在您就可以初始化它们了

这是一个基于零的数组

var aqar = ['1_2', '5_1', '3_3'];
或者您可能更喜欢使用非数组对象:

var aqar = {
    1: '1_2',
    2: '5_1',
    3: '3_3'
};
…但这样你就不会拥有所有优秀的
Array
功能了

如果确实需要,可以创建一个JavaScript数组,该数组在
0
位置没有元素,如下所示:

var aqar = [];
aqar[1] = '1_2';
aqar[2] = '5_1';
aqar[3] = '3_3';
这将创建一个稀疏阵列(其中有孔的阵列)。它没有元素
0
。(与元素
0
具有值
null
,这是这里的另一个答案所做的相反)但除非您有很好的理由,否则我不会。您将数组与哈希混合。 数组:

散列:


var-aqar=['1_2','5_1','3_3']
新数组
表单好得多。否则,+1@T.J.Crowder的确,谢谢!已更新。请阅读JavaScript教程以了解基本语法:。为什么你认为这一行首先是正确的?我来自PHP背景。我认为在javaScript数组中可以有自定义键,而不是在数组中。数组只是对象的“列表”或枚举,而不是键值存储。这是一个对象或映射。@grailsguiy:实际上,JavaScript数组是通用的键/值存储。它们的“数组性”是一个神话(),它们只是具有一些额外特性的对象。当然,这并不意味着在不需要额外的类似数组的功能时应该使用它们。:-)
var a = ['1_2','5_1','3_3']; //a[0] = '1_2'
var a = {1:'1_2',2:'5_1',3:'3_3'}; //a[1] = '1_2'