- ベストアンサー
JavaScriptのif文についての悩みと解決方法
- JavaScriptのif文を使用して複雑な条件判定を行うプログラムを作成したが、if文の羅列が長くなっている。他の方法で条件を判定する方法はないか?
- 作成したJavaScriptプログラムでは、複数の条件を判定するためにif文を使用しているが、if文の羅列が冗長になってしまっている。他の効果的な条件判定方法はないか?
- JavaScriptのif文を使って複雑な条件判定を行うプログラムを作成したが、if文の数が多くなってしまっている。よりスマートな条件判定の方法はないか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
オブジェクトで連想配列のようにしてみるとよいでしょう。 <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="">
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
えーと、きちんと説明すればよかったのですが、オブジェクトの 指定は以下のようにします。 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} };
お礼
こと細かく申し訳ないです。お蔭様で理解できました!どうもありがとうございます!
補足
できました!ありがとうございました!ただ上のプログラムに以下のように条件を足したらうまくうごいてくれませんでした…どうすればいいですか? 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}};