Skip to content

Commit da63da4

Browse files
⚡ Bolt: Combine map, Math.max, and forEach into a single loop
Co-authored-by: alvin000009238 <107313913+alvin000009238@users.noreply.github.com>
1 parent f93682b commit da63da4

1 file changed

Lines changed: 10 additions & 6 deletions

File tree

frontend/dashboard.js

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -130,19 +130,23 @@ function updateStatistics(subjects) {
130130
return;
131131
}
132132

133-
const scores = subjects.map(subject => subject.scoreValue);
134-
const highest = Math.max(...scores);
135-
136-
// 計算加權平均
133+
// Combine map, Math.max, and forEach into a single loop for performance
134+
let highest = -Infinity;
137135
let totalWeightedScore = 0;
138136
let totalWeight = 0;
139137

140-
subjects.forEach(subject => {
138+
for (let i = 0; i < subjects.length; i++) {
139+
const subject = subjects[i];
141140
const score = subject.scoreValue;
141+
142+
if (score > highest) {
143+
highest = score;
144+
}
145+
142146
const weight = getSubjectWeight(subject.SubjectName);
143147
totalWeightedScore += score * weight;
144148
totalWeight += weight;
145-
});
149+
}
146150

147151
const weightedAvg = totalWeight > 0 ? totalWeightedScore / totalWeight : 0;
148152

0 commit comments

Comments
 (0)