プロが教える店舗&オフィスのセキュリティ対策術

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]);
}
}

よろしくお願いいたします。

A 回答 (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]
    • good
    • 0

再現しません。



検証環境は以下とまったく同じです。
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.dt …
<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
まで全て表示されました。
    • good
    • 1
この回答へのお礼

再度試したところ、動作しました。
おさわがせいたしました。

おそらく元のソースでは、
x = data[i];として
x.lengthとしていた可能性があります。

が、これでも再度試すと動作しました。

何かスペルミスをしていたかも知れません。

お礼日時:2007/06/21 09:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!