【Javascript】多次元配列でトラブった&解決記
(2012-10-10)
コメントでの助言を参考に、記事を若干修正しました。
コメント欄もご覧ください。
結論
たとえば、ニ次元配列のニ次元目にいきなり値を格納する場合、ひとつの次元ごとに配列の宣言をしなくてはならないようです。
(追記:2009/12/23)
Javascriptでは、『配列の配列』は可能ですが、多次元配列はサポートされていないそうです。
そのせいですね。
(→ 『オライリー・ジャパン JavaScript 第5版』p.35 より)
基本
失敗
var hoge = [];
hoge[0][0] = 'aaa';
成功
var hoge = [];
hoge[0] = [];
hoge[0][0] = 'aaa';alert(hoge[0][0]); //'aaa'
var hoge = [];
hoge[0] = ['aaa', 'bbb', 'ccc'];alert(hoge[0][0]); //'aaa'
var hoge = [ ['aaa', 'bbb', 'ccc'], [ ], [ ] ];alert(hoge[0][0]); //'aaa'
実際のトラブル例
for文を重ねたコードの中で多次元配列に値を格納しようとしましたが、何度やってもエラーになってしまいました。
失敗
var hoge = [];
for(i=0; i<3; i++){
for(j=0; j<3; j++){
hoge[i][j] = 'aaa';
}
}alert(hoge[0][0]); //エラー
成功
var hoge = [];
for(i=0; i<3; i++){
hoge[i] = [];
for(j=0; j<3; j++){
hoge[i][j] = 'aaa';
}
}alert(hoge[0][0]); //'aaa'
鼻息荒く、大急ぎで報告の記事を書きましたが…、
これって、常識だったんでしょうか?
独学で突き進むしかない貧乏&孤独PGは、いつも不安です…orz