• ベストアンサー

Javascriptで二次元配列で高次元の配列サイズを取得する方法を教えてください。

Javascriptで二次元配列で高次元の配列サイズを取得する方法を教えてください。 var data = [ [1,2,3], [4,5,6], [7,8,9] ]; for (var i = 0; i < data.length; i++){ for (var j = 0; j < data[i].length; j++){ <--- ここで lengthのオブジェクトがNullというエラーになります。 alert(data[i][j]); } } よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

再現しません。 検証環境は以下とまったく同じです。 http://oshiete1.goo.ne.jp/qa3101381.html Q3102333.html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>実験</title> <style type="text/css"> p{background-color:red;} </style> <script type="text/javascript" src="Q3101381.js"></script> </head> <body> <p onclick="hoge();">ほげ</p> </body> </html> Q3102333.js function hoge(){ var data = [ [1,2,3], [4,5,6], [7,8,9] ]; for (var i = 0; i < data.length; i++){ for (var j = 0; j < data[i].length; j++){ alert(i +":" + j +":" + data[i][j]); } } } 0:0:1 から 2:2:9 まで全て表示されました。

capetown
質問者

お礼

再度試したところ、動作しました。 おさわがせいたしました。 おそらく元のソースでは、 x = data[i];として x.lengthとしていた可能性があります。 が、これでも再度試すと動作しました。 何かスペルミスをしていたかも知れません。

その他の回答 (1)

回答No.2

すまん、検証環境張り間違えた こっちのつもりだった。 http://oshiete1.goo.ne.jp/qa3100997.html IE6 on WinXP Pro SP2[EN](VPC) Safari 3.0.1Beta on WinXP Pro SP2[EN](VPC) IE7 on WinXP Pro SP2[JA] Minefield(Firefox 3.0a6pre) on WinXP Pro SP2[JA] Opera 9.21 on WinXP Pro SP2[JA]

関連するQ&A