From 3e0266e782f8753032b658167946fb1bfc49bad9 Mon Sep 17 00:00:00 2001 From: heimoshuiyu Date: Thu, 16 Feb 2023 17:56:52 +0800 Subject: [PATCH] =?UTF-8?q?change=20=E4=BD=BF=E7=94=A8=E6=9D=83=E9=87=8D?= =?UTF-8?q?=E5=80=BC=E7=99=BE=E5=88=86=E6=AF=94=E4=BD=9C=E4=B8=BA=20normal?= =?UTF-8?q?ize=20method?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/api/tool.ts | 12 ++++++++---- pages/report-tool.tsx | 6 +++--- 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/pages/api/tool.ts b/pages/api/tool.ts index b1b923d..4cf661a 100644 --- a/pages/api/tool.ts +++ b/pages/api/tool.ts @@ -27,17 +27,17 @@ export default async function handler( } = JSON.parse(jsonStr); // Normalization - // 使用 标准分数 算法 z = (x - mean) / std + // 使用 权重值 / 权重值之和 const { selections } = json; const nums = Object.values(selections); - const mean = nums.reduce((a, b) => a + b) / nums.length; + const sum = nums.reduce((a, b) => a + b); + const mean = sum / nums.length; const std = Math.sqrt( nums.map((x) => Math.pow(x - mean, 2)).reduce((a, b) => a + b) / nums.length ); - const normalizedNums = nums.map((x) => (std === 0 ? 0 : (x - mean) / std)); for (const index in selections) { - selections[index] = std === 0 ? 0 : (selections[index] - mean) / std; + selections[index] = selections[index] / sum; } users[json.user] = selections; } @@ -99,6 +99,10 @@ export default async function handler( sortedHoursCount.sort((a, b) => a[1] - b[1]); console.log("sortedHoursCount", sortedHoursCount); console.log("sortedHoursCount.length", sortedHoursCount.length); + console.log( + "user.length === sorted.length", + Object.keys(users).length === sortedHoursCount.length + ); res.status(200).json(resp); } diff --git a/pages/report-tool.tsx b/pages/report-tool.tsx index f8a845b..8e1b7ce 100644 --- a/pages/report-tool.tsx +++ b/pages/report-tool.tsx @@ -6,8 +6,8 @@ const ReportPage = () => { const getReport = async () => { const resp = await fetch("/api/html").then((resp) => resp.json()); ref.current.innerHTML = resp.html; - const json: Record = await fetch("/api/tool").then( - (resp) => resp.json() + const json: Record = await fetch("/api/tool").then((resp) => + resp.json() ); const table = ref.current.children[0]; const tbody = table.children[table.children.length - 1]; @@ -47,4 +47,4 @@ const ReportPage = () => { ); }; -export default ReportPage; \ No newline at end of file +export default ReportPage;