質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1177閲覧

異なるセレクト部分から同じ選択肢が選ばれた場合に、同じ個所から数値を取り出す方法について

退会済みユーザー

退会済みユーザー

総合スコア0

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2017/11/21 13:30

先ほど https://teratail.com/questions/101410 で質問させていただきました
教えていただいたjavasprictでの記述を使わせていただいてたのですが、編集していて気になる点があったため質問させていただきます

javascript

1 2'use strict' 3var kcal = {}; 4kcal["ve1"] = {}; 5kcal["ve2"] = {}; 6kcal["ve3"] = {}; 7kcal["ve1"]["a"] = {"kcal":100,"na":10,"mg":20}; 8kcal["ve1"]["b"] = {"kcal":20,"na":20,"mg":10}; 9kcal["ve1"]["c"] = {"kcal":30,"na":15,"mg":40}; 10kcal["ve2"]["a"] = {"kcal":100,"na":10,"mg":20}; 11kcal["ve2"]["b"] = {"kcal":20,"na":20,"mg":10}; 12kcal["ve2"]["c"] = {"kcal":30,"na":15,"mg":40}; 13kcal["ve3"]["a"] = {"kcal":100,"na":10,"mg":20}; 14kcal["ve3"]["b"] = {"kcal":20,"na":20,"mg":10}; 15kcal["ve3"]["c"] = {"kcal":30,"na":15,"mg":40};

のように同じ組み合わせの数値を繰り返し使用する場合、多少長くなっておよいのでそれらをまとめて表記する方法はないのでしょうか?もしあれば教えていただきたいです

また編集中の全文です

javascript

1人数: <input type="text" value="1" id="a1" class="example"><br /><br /> 2日数: <input type="text" value="1" id="b1" class="example"><br /><br /> 3 4<select style="width: 222.297px;" id="ve1"> 5<option value="a">野菜1</option> 6<option value="b">野菜2</option> 7<option value="c">野菜3</option> 8</select> 9<select id="abs1"> 10<option value="x">吸収力弱</option> 11<option value="y">吸収力中</option> 12<option value="z">吸収力強</option> 13</select><br /><br /> 14 15<select style="width: 222.297px;" id="ve2" > 16<option value="a">野菜1</option> 17<option value="b">野菜2</option> 18<option value="c">野菜3</option> 19</select> 20<select id="abs2"> 21<option value="x">吸収力弱</option> 22<option value="y">吸収力中</option> 23<option value="z">吸収力強</option> 24</select><br /><br /> 25 26<select id="ve3" style="width: 222.297px;"> 27<option value="a">野菜1</option> 28<option value="b">野菜2</option> 29<option value="c">野菜3</option> 30</select> 31<select id="abs3"> 32<option value="x">吸収力弱</option> 33<option value="y">吸収力中</option> 34<option value="z">吸収力強</option> 35</select><br /><br /> 36 37<input onclick="practice_sum()" id="sum" value="計算!" type="button"> 38<br /> 39計算結果(一人当たり)<br /> 40 <label>カロリー<output id="aresulta">未入力計算</output></label><br /> 41 <label>ナトリウム<output id="aresultb">未入力計算</output></label><br /> 42 <label>マグネシウム<output id="aresultc">未入力計算</output></label><br /> 43計算結果(全員)<br /> 44 <label>カロリー<output id="resulta">未入力計算</output></label><br /> 45 <label>ナトリウム<output id="resultb">未入力計算</output></label><br /> 46 <label>マグネシウム<output id="resultc">未入力計算</output></label><br /> 47計算結果(日数分)<br /> 48 <label>カロリー<output id="sresulta">未入力計算</output></label><br /> 49 <label>ナトリウム<output id="sresultb">未入力計算</output></label><br /> 50 <label>マグネシウム<output id="sresultc">未入力計算</output></label> 51 52 53<script> 54 55'use strict' 56var kcal = {}; 57kcal["ve1"] = {}; 58kcal["ve2"] = {}; 59kcal["ve3"] = {}; 60kcal["ve1"]["a"] = {"kcal":100,"na":10,"mg":20}; 61kcal["ve1"]["b"] = {"kcal":20,"na":20,"mg":10}; 62kcal["ve1"]["c"] = {"kcal":30,"na":15,"mg":40}; 63kcal["ve2"]["a"] = {"kcal":100,"na":10,"mg":20}; 64kcal["ve2"]["b"] = {"kcal":20,"na":20,"mg":10}; 65kcal["ve2"]["c"] = {"kcal":30,"na":15,"mg":40}; 66kcal["ve3"]["a"] = {"kcal":100,"na":10,"mg":20}; 67kcal["ve3"]["b"] = {"kcal":20,"na":20,"mg":10}; 68kcal["ve3"]["c"] = {"kcal":30,"na":15,"mg":40}; 69var abs = {}; 70abs["abs1"] = {}; 71abs["abs2"] = {}; 72abs["abs3"] = {}; 73abs["abs1"]["x"] = {"kcal":1,"na":1,"mg":0.8}; 74abs["abs1"]["y"] = {"kcal":1.2,"na":1.1,"mg":1.1}; 75abs["abs1"]["z"] = {"kcal":1.3,"na":1.1,"mg":1.7}; 76abs["abs2"]["x"] = {"kcal":1,"na":1,"mg":0.8}; 77abs["abs2"]["y"] = {"kcal":1.2,"na":1.1,"mg":1.1}; 78abs["abs2"]["z"] = {"kcal":1.3,"na":1.1,"mg":1.7}; 79abs["abs3"]["x"] = {"kcal":1,"na":1,"mg":0.8}; 80abs["abs3"]["y"] = {"kcal":1.2,"na":1.1,"mg":1.1}; 81abs["abs3"]["z"] = {"kcal":1.3,"na":1.1,"mg":1.7}; 82 83 84function setVal(sel,val) { 85 if(val > 99999999) { 86 document.getElementById(sel).value = 99999999; 87 }else if (val < 0) { 88 document.getElementById(sel).value = 0; 89 } else { 90 document.getElementById(sel).value = Math.floor(val); 91 } 92} 93 94 95function practice_sum() { 96 var ve1 = document.getElementById("ve1"); 97 var ve2 = document.getElementById("ve2"); 98 var ve3 = document.getElementById("ve3"); 99 var abs1 = document.getElementById("abs1"); 100 var abs2 = document.getElementById("abs2"); 101 var abs3 = document.getElementById("abs3"); 102 var a1 = parseFloat(document.getElementById("a1").value); 103 var b1 = parseFloat(document.getElementById("b1").value); 104 var aresulta = ( parseFloat(kcal[ve1.id][ve1.value].kcal) * parseFloat(abs[abs1.id][abs1.value].kcal) ) + 105 ( parseFloat(kcal[ve2.id][ve2.value].kcal) * parseFloat(abs[abs2.id][abs2.value].kcal) ) + 106 ( parseFloat(kcal[ve3.id][ve3.value].kcal) * parseFloat(abs[abs3.id][abs3.value].kcal) ); 107 setVal("aresulta",aresulta); 108 var aresultb = ( parseFloat(kcal[ve1.id][ve1.value].na) * parseFloat(abs[abs1.id][abs1.value].na) ) + 109 ( parseFloat(kcal[ve2.id][ve2.value].na) * parseFloat(abs[abs2.id][abs2.value].na) ) + 110 ( parseFloat(kcal[ve3.id][ve3.value].na) * parseFloat(abs[abs3.id][abs3.value].na) ); 111 setVal("aresultb",aresultb); 112 var aresultc = ( parseFloat(kcal[ve1.id][ve1.value].mg) * parseFloat(abs[abs1.id][abs1.value].mg) ) + 113 ( parseFloat(kcal[ve2.id][ve2.value].mg) * parseFloat(abs[abs2.id][abs2.value].mg) ) + 114 ( parseFloat(kcal[ve3.id][ve3.value].mg) * parseFloat(abs[abs3.id][abs3.value].mg) ); 115 setVal("aresultc",aresultc); 116 117 var resulta = aresulta*a1; 118 setVal("resulta",resulta); 119 120 var resultb = aresultb*a1; 121 setVal("resultb",resultb); 122 123 var resultc = aresultc*a1; 124 setVal("resultc",resultc); 125 126 var sresulta = resulta*b1 ; 127 setVal("sresulta",sresulta); 128 129 var sresultb = resultb*b1 ; 130 setVal("sresultb",sresultb); 131 132 var sresultc = resultc*b1 ; 133 setVal("sresultc",sresultc); 134} 135 </script></div></div></span>

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

javascript

1 2var kcal = {}; 3["ve1","ve2","ve3"].map(function(i){ 4 kcal[i]={ 5 "a":{"kcal":100,"na":10,"mg":20}, 6 "b":{"kcal":20 ,"na":20,"mg":10}, 7 "c":{"kcal":30 ,"na":15,"mg":40}, 8 } 9});

投稿2017/11/21 13:51

yambejp

総合スコア114572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2017/11/21 14:07

助かりました!ありがとうございます!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問