From 8098c6bca25f59d5e0f7766270ac0a22eb3cd1e8 Mon Sep 17 00:00:00 2001 From: "google-labs-jules[bot]" <161369871+google-labs-jules[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 09:37:42 +0000 Subject: [PATCH] perf: optimize updateStatistics array iterations Co-authored-by: alvin000009238 <107313913+alvin000009238@users.noreply.github.com> --- frontend/dashboard.js | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/frontend/dashboard.js b/frontend/dashboard.js index 281b9a2..16cf418 100644 --- a/frontend/dashboard.js +++ b/frontend/dashboard.js @@ -130,19 +130,21 @@ function updateStatistics(subjects) { return; } - const scores = subjects.map(subject => subject.scoreValue); - const highest = Math.max(...scores); - - // 計算加權平均 + // 計算加權平均與最高分 + let highest = -Infinity; let totalWeightedScore = 0; let totalWeight = 0; - 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;