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;

ただし、配列全体ではなく、追加された要素を返すため、関数パラメーターとして直接使用することはできません。として呼び出す必要があります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 に答える