回答編集履歴
2
おまけ追加
test
CHANGED
@@ -100,9 +100,9 @@
|
|
100
100
|
|
101
101
|
// ちょっと洒落た作り方でsubject_pointsを作ってみる
|
102
102
|
|
103
|
-
|
103
|
+
const subject_points = ['national_language', 'english', 'mathematics', 'science', 'society'].map(function(id){
|
104
104
|
|
105
|
-
return parseInt($('#'+id).val();
|
105
|
+
return parseInt($('#'+id).val());
|
106
106
|
|
107
107
|
});
|
108
108
|
|
@@ -127,3 +127,69 @@
|
|
127
127
|
5個の数値を合計する程度のことしかやっていないので、誤差みたいなものでしょう。
|
128
128
|
|
129
129
|
一気に計算しようと頑張ると辛くなります。
|
130
|
+
|
131
|
+
|
132
|
+
|
133
|
+
---
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
蛇足のおまけ
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
letを使っているということはIE11対応しなくて良いんでしょうか?
|
142
|
+
|
143
|
+
ならばES2015の書き方が出来ますね。
|
144
|
+
|
145
|
+
|
146
|
+
|
147
|
+
もし私がガチで作るならこんな感じになるでしょう。
|
148
|
+
|
149
|
+
数値の配列から合計を求めるのは1行のイディオムで可能ですので、
|
150
|
+
|
151
|
+
achievementが求めるものを平均点に変更して割り出します。
|
152
|
+
|
153
|
+
|
154
|
+
|
155
|
+
```JavaScript
|
156
|
+
|
157
|
+
function achievement (avg) {
|
158
|
+
|
159
|
+
if (avg >= 80) return "A";
|
160
|
+
|
161
|
+
if (avg >= 60) return "B";
|
162
|
+
|
163
|
+
if (avg >= 40) return "C";
|
164
|
+
|
165
|
+
return "D";
|
166
|
+
|
167
|
+
}
|
168
|
+
|
169
|
+
|
170
|
+
|
171
|
+
function score_indicate(){
|
172
|
+
|
173
|
+
const points = ['national_language', 'english', 'mathematics', 'science', 'society'].map(id => parseInt($('#'+id).val()));
|
174
|
+
|
175
|
+
const sum = points.reduce((a, b) => a + b, 0);
|
176
|
+
|
177
|
+
const avg = sum / points.length;
|
178
|
+
|
179
|
+
|
180
|
+
|
181
|
+
$("#sum_indicate").text(sum);
|
182
|
+
|
183
|
+
$('#avarage_indicate').text(avg);
|
184
|
+
|
185
|
+
$('#evaluation').text(achievement(avg));
|
186
|
+
|
187
|
+
}
|
188
|
+
|
189
|
+
```
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
もっと頑張ればまだまだ行数やコード量は減らせると思いますが、
|
194
|
+
|
195
|
+
可読性が犠牲になると思うのでこれが一つの完成系じゃないかなぁと思います。
|
1
if文の中身を修正
test
CHANGED
@@ -70,23 +70,13 @@
|
|
70
70
|
|
71
71
|
var a = avg(points);
|
72
72
|
|
73
|
-
|
73
|
+
// 確実に1行で終わるケースならこれでいい
|
74
74
|
|
75
|
-
return "A";
|
75
|
+
if (a >= 80) return "A";
|
76
76
|
|
77
|
-
|
77
|
+
if (a >= 60) return "B";
|
78
78
|
|
79
|
-
if (a >= 60) {
|
80
|
-
|
81
|
-
return "B";
|
82
|
-
|
83
|
-
}
|
84
|
-
|
85
|
-
if (a >= 40) {
|
86
|
-
|
87
|
-
return "C";
|
79
|
+
if (a >= 40) return "C";
|
88
|
-
|
89
|
-
}
|
90
80
|
|
91
81
|
return "D";
|
92
82
|
|