如何使用非零索引初始化Javascript数组

时间:2012-06-15 18:51:02

标签: javascript

我正在将一个数组传递给一个函数,我很好奇是否有一种快速方法可以使用json样式数组初始化程序来传递一个匿名数组:

例如:

myfunction([1,2,3,4]);

javascript中是否有一些特殊语法允许用非零索引初始化数组?

例如,

,而不是

myfunction([,,,,4321]);

//array[4] == 4321 here

但如果您有一个未定义前100个位置的数组,则必须有100个逗号。 [,, ...,4321]

基本上寻找简短形式:

var a = new Array(); a[100] = 4321; 

您可以将其用作函数参数。

3 个答案:

答案 0 :(得分:9)

类似的东西:

var a = new Array(100).concat([4321]);

答案 1 :(得分:3)

可能最短的方法(但非常难以理解)

(a = [])[100] = 4321;

但是你仍然不能将它直接用作函数参数,因为它返回添加的元素,而不是整个数组。您仍然需要拨打myFunction(a)

答案 2 :(得分:2)

传递类似这样的内容:

myfunction({100: "foo", 101: "bar"});

这有效:

function testArray(arr) {
    alert(arr[4]);
}

testArray({4: "foo"}); //alerts "foo"