• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:javaScriptのif文について…)

JavaScriptのif文についての悩みと解決方法

このQ&Aのポイント
  • JavaScriptのif文を使用して複雑な条件判定を行うプログラムを作成したが、if文の羅列が長くなっている。他の方法で条件を判定する方法はないか?
  • 作成したJavaScriptプログラムでは、複数の条件を判定するためにif文を使用しているが、if文の羅列が冗長になってしまっている。他の効果的な条件判定方法はないか?
  • JavaScriptのif文を使って複雑な条件判定を行うプログラムを作成したが、if文の数が多くなってしまっている。よりスマートな条件判定の方法はないか?

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

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.1

オブジェクトで連想配列のようにしてみるとよいでしょう。 <script type="text/javascript"> function hoge(){ var v1=document.getElementById('s1').value; var v2=document.getElementById('s2').value; var rslt; var obj={1:{1:36,2:29,3:22,4:14,5:7,6:0}}; try{ rslt=obj[v1][v2]; }catch(e){ rslt="?"; } document.getElementById('txt').value=rslt; } </script> <select id="s1" onChange="hoge()"> <option value="1">1 <option value="2">2 <option value="3">3 <option value="4">4 </select>   <select id="s2" onChange="hoge()"> <option value="1">1 <option value="2">2 <option value="3">3 <option value="4">4 <option value="5">5 <option value="6">6 </select><p> <input type="text" id="txt" value="">

h0130
質問者

補足

できました!ありがとうございました!ただ上のプログラムに以下のように条件を足したらうまくうごいてくれませんでした…どうすればいいですか? var obj={2:{1:32,2:26,3:19,4:13,5:6,6:0}}; var obj={3:{1:21,2:17,3:13,4:8,5:4,6:0}}; var obj={4:{1:31,2:25,3:18,4:12,5:6,6:0}};

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

えーと、きちんと説明すればよかったのですが、オブジェクトの 指定は以下のようにします。 var obj={ 1:{1:36,2:29,3:22,4:14,5:7,6:0} ,2:{1:32,2:26,3:19,4:13,5:6,6:0} ,3:{1:21,2:17,3:13,4:8,5:4,6:0} ,4:{1:31,2:25,3:18,4:12,5:6,6:0} };

h0130
質問者

お礼

こと細かく申し訳ないです。お蔭様で理解できました!どうもありがとうございます!

関連するQ&A