• ベストアンサー

javascriptで質問があります。

title1で連想配列からaとbの値を出したいのですがundefinedが出ます。 どうすればいいのでしょうか。教えていただけると助かります。 <script type="text/javascript"> <!-- t0000={title:"a",id:"kin"}; t0001={title:"b",id:"gin"}; i=0; while(i<2){ c = "t000"+i alert(c); title1 = c["title"]; alert(title1); i++ } //--> </script>

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

  • ベストアンサー
  • fujillin
  • ベストアンサー率61% (1594/2576)
回答No.3

eval使うなら、このほうが近いのではなかろうか? (判じものみたいなので、わかんないけれど) t0000={title:"a",id:"kin"}; t0001={title:"b",id:"gin"}; i=0; while(i<2) { c = "t000"+i; alert(c); title1 = eval(c + '["title"]'); alert(title1); i++ } --------------------------------- いっぱいある場合は、t000, t001・・・などを配列にして#1様のように定義しておく方が便利。 そうしておけば、evalを使わなくてもアクセスが可能になります。 t = [ {title:"a",id:"kin"}, {title:"b",id:"gin"} ]; i=0; while (i<2) alert(t[i++]['title']);

nezaway
質問者

お礼

回答ありがとうございます。 たしかに大量にあります。 下記の方がいいのでしょうか。

その他の回答 (3)

回答No.4

これってクイズ? t0000={title:"a",id:"kin"}; t0001={title:"b",id:"gin"}; i=0; while(i<2){ c = "t000"+i alert(c); alert(window[c].title); i++ }

nezaway
質問者

お礼

回答ありがとうございます。 いえいえクイズではありません。 なるほどwindowもあるのですね。

  • notnot
  • ベストアンサー率47% (4900/10358)
回答No.2

もとのプログラムを出来るだけ変えないとすると、 t0000={title:"a",id:"kin"}; t0001={title:"b",id:"gin"}; i=0; while(i<2){ c = "t000"+i alert(c); title1 = eval(c+'["title"]'); alert(title1); i++ } cは文字列なので、変数名と見なすためにはevalが必要。

nezaway
質問者

お礼

回答ありがとうございます。 変数として使えるように変換するのですね。 勉強不足でした。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

こおゆう事 c=[{title:"a",id:"kin"},{title:"b",id:"gin"}]; i=0; for(var i=0;i<2;i++){ eval ('var title' + i +'=c[' + i + '].title;'); alert(eval('title' + i)); } ちがう~...

nezaway
質問者

お礼

回答ありがとうございます。 なるほどeval()というものを使うのですね

関連するQ&A