-
- (質問者)
- 投稿時間:2009/07/03 13:49
以下のコードを実行すると 5がポップアップされて欲しいのですが 01がポップアップされてしまいます。 どこか間違えているでしょうか?コピペする ブログに貼る<!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>test</title> </head> <script type="text/javascript"> var struct = [ { value1: 0, value2: 0 } ]; value1 = 5; for( var i in struct ) { if( struct[i].value1 < value1 ){ index = i + 1; } } alert(index) </script> </html>
- 回答数 (2)
- クリップ数 (0)
- アクセス数 (1035)
-
プログラミング / 開発言語 / JavaScript
- 回答
for in 文は、オブジェクトのプロパティを プロパティ数のだけ呼び出し、そのプロパティ名を i に格納する構文です。 そのため i に格納されるのは文字列となるため、おそらく数字の計算ではなく "文字列の連結" として処理がされているために 「01」が出力されるのだと思います。 struct の中身は配列なので、純粋に配列数をキーに 通常の for 文で対応可能だと思います。
for( var i=0; i<struct.length; i++ ) { }
-
- (質問者)
- 2009/07/07 15:27
でうまくいきました!! ありがとうございました。コピペする ブログに貼るfor( var i=0; i<struct.length; i++ ) { }
1
回答
2
回答
1
回答
4
回答
1
回答
3
回答
(2009/04/10 12:12)
by setomits
- 0クリップ
- 1320アクセス
- プログラミング / 開発言語 / JavaScript
2
回答
2
回答
2
回答
(2009/05/22 18:40)
- 0クリップ
- 1064アクセス
- インターネット / ブラウザ/クライアントサイド / その他


