diff --git a/frontend/dashboard.js b/frontend/dashboard.js index 281b9a2..e5babd2 100644 --- a/frontend/dashboard.js +++ b/frontend/dashboard.js @@ -130,19 +130,23 @@ function updateStatistics(subjects) { return; } - const scores = subjects.map(subject => subject.scoreValue); - const highest = Math.max(...scores); - - // 計算加權平均 + // 計算加權平均與最高分,合併迴圈以提升效能 let totalWeightedScore = 0; let totalWeight = 0; + let highest = -Infinity; - subjects.forEach(subject => { + for (let i = 0; i < subjects.length; i++) { + const subject = subjects[i]; const score = subject.scoreValue; + + if (score > highest) { + highest = score; + } + const weight = getSubjectWeight(subject.SubjectName); totalWeightedScore += score * weight; totalWeight += weight; - }); + } const weightedAvg = totalWeight > 0 ? totalWeightedScore / totalWeight : 0;