From 4b6f4650b21a892b8ee1f57593b38efffed74155 Mon Sep 17 00:00:00 2001 From: akmhmgc <38002468+akmhmgc@users.noreply.github.com> Date: Sun, 14 Aug 2022 03:24:44 +0900 Subject: [PATCH] refactor: improve level calculator (#1946) --- src/calculateRank.js | 30 +++++++----------------------- 1 file changed, 7 insertions(+), 23 deletions(-) diff --git a/src/calculateRank.js b/src/calculateRank.js index 76909d0..0c401d9 100644 --- a/src/calculateRank.js +++ b/src/calculateRank.js @@ -63,29 +63,13 @@ function calculateRank({ const normalizedScore = normalcdf(score, TOTAL_VALUES, ALL_OFFSETS) * 100; - let level = ""; - - if (normalizedScore < RANK_S_VALUE) { - level = "S+"; - } - if ( - normalizedScore >= RANK_S_VALUE && - normalizedScore < RANK_DOUBLE_A_VALUE - ) { - level = "S"; - } - if ( - normalizedScore >= RANK_DOUBLE_A_VALUE && - normalizedScore < RANK_A2_VALUE - ) { - level = "A++"; - } - if (normalizedScore >= RANK_A2_VALUE && normalizedScore < RANK_A3_VALUE) { - level = "A+"; - } - if (normalizedScore >= RANK_A3_VALUE && normalizedScore < RANK_B_VALUE) { - level = "B+"; - } + const level = (() => { + if (normalizedScore < RANK_S_VALUE) return "S+"; + if (normalizedScore >= RANK_S_VALUE && normalizedScore < RANK_DOUBLE_A_VALUE) return "S"; + if (normalizedScore >= RANK_DOUBLE_A_VALUE && normalizedScore < RANK_A2_VALUE) return "A++"; + if (normalizedScore >= RANK_A2_VALUE && normalizedScore < RANK_A3_VALUE) return "A+" + if (normalizedScore >= RANK_A3_VALUE && normalizedScore < RANK_B_VALUE) return "B+" + })() return { level, score: normalizedScore }; }