0

次のように Javascript で多次元配列を宣言できますか。

var linkArray = new Array(3);
linkArray[0][0] = 'boothsize_link';
linkArray[0][1] = true;
linkArray[0][2] = false;
linkArray[1][0] = 'enkfur_link';
linkArray[1][1] = true;
linkArray[1][2] = false;
linkArray[2][0] = 'enklight_link';
linkArray[2][1] = true;
linkArray[2][2] = false;

これは有効ですか?

4

2 に答える 2

2

No this is not valid, you have to initialize each subarray as well:

var linkArray = new Array(3);
linkArray[0] = [];
linkArray[0][0] = 'boothsize_link';
linkArray[0][1] = true;
linkArray[0][2] = false;
etc

In general, array initializers are much easier to write using [...] literals:

var linkArray = [
    ['boothsize_link', true, false],
    ['enkfur_link', true, false],
    etc

]
于 2013-03-13T13:16:32.220 に答える
0

これは有効ですか?

はい、これは有効な JavaScript 構文です (flase予想されるブール値ではなく、未定義の変数になる Typo は別として)。

例外をスローしますか?

はい。長さ 3 の新しい空の配列をlinkArray割り当てても、何かを割り当てることができるプロパティを持つ項目配列は作成されません。linkArray[0]でありundefinedlinkArray[0][0]エラーがスローされます。電話する必要があります

linkArray[0] = new Array(3);

前、および同じ for linkArray[1]and linkArray[2](ループで行う方がよい)。

または、配列を宣言する標準的な方法である配列リテラルを使用するだけです。

var linkArray = [
    ['boothsize_link', true, false],
    ['enkfur_link',    true, flase],
    ['enklight_link',  true, false]
];
于 2013-03-13T13:17:30.617 に答える