2

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

例如:

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

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

例如,而不是

myfunction([,,,,4321]);

//array[4] == 4321 here

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

基本上是在寻找一个简短的形式:

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

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

4

3 回答 3

9

就像是:

var a = new Array(100).concat([4321]);
于 2012-06-15T18:59:32.067 回答
3

可能最短的方法(但非常不可读)是

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

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

于 2012-06-15T18:57:14.753 回答
2

传递这样的东西:

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

这有效:

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

testArray({4: "foo"}); //alerts "foo"
于 2012-06-15T18:58:02.913 回答