我该如何改进我的if-else结构?



我不知道如何让代码更漂亮。我需要返回到我的app中,这只是给用户的建议。我是这样做的,但也许你可以改进它:

const makeRecomendations = (wordsPerMinute, newAverage) => {
if (wordsPerMinute  <= 119 && (newAverage >=5 && newAverage <=8) && output.length < 1) return 'Увеличьте скорость речи'
else if (wordsPerMinute  <= 119 && newAverage <=5 && output.length < 1) return 'Увеличьте скорость речиnГоворите громче'
else if (wordsPerMinute  <= 119 && newAverage >=8 && output.length < 1) return 'Увеличьте скорость речиnГоворите тише'
else if (wordsPerMinute  <= 119 && (newAverage >=8) && output.length >= 1) return 'Увеличьте скорость речиnГоворите тишеnКонтролируйте употребление слов паразитов'
else if (wordsPerMinute  <= 119 && (newAverage <=5) && output.length >= 1) return 'Увеличьте скорость речиnГоворите громчеnКонтролируйте употребление слов паразитов'
else if (wordsPerMinute  <= 119 && (newAverage >=5 && newAverage <=8) && output.length >= 1) return 'Увеличьте скорость речиnКонтролируйте употребление слов паразитов'
else if (wordsPerMinute  >= 180 && (newAverage >=5 && newAverage <=8) && output.length < 1) return 'Не торопитесь во время доклада'
else if ((wordsPerMinute >= 119 && wordsPerMinute <= 180)  && newAverage <=5 && output.length < 1) return 'Говорите громче'
else if ((wordsPerMinute >= 119 && wordsPerMinute <= 180)  && newAverage >=8 && output.length < 1) return 'Говорите тише'
else if ((wordsPerMinute >= 119 && wordsPerMinute <= 180)  && (newAverage >=5 && newAverage <= 8) && output.length >= 1) return 'Контролируйте употребление слов паразитов'
else if ((wordsPerMinute >= 119 && wordsPerMinute <= 180)  && newAverage <=5 &&  output.length >= 1) return 'Говорите громчеnКонтролируйте употребление слов паразитов'
else if (wordsPerMinute >=180  && newAverage <=5 &&  output.length >= 1) return 'Не торопитесь во время докладаnГоворите громчеnКонтролируйте употребление слов паразитов'
else if (wordsPerMinute >=180  && (newAverage >=5 && newAverage <= 8) &&  output.length < 1) return 'Не торопитесь во время доклада'
else if (wordsPerMinute >=180  && (newAverage >=5 && newAverage <= 8) &&  output.length >= 1) return 'Не торопитесь во время докладаnКонтролируйте употребление слов паразитов'
else if (wordsPerMinute <= 119  && (newAverage >=5 && newAverage <= 8) &&  output.length >= 1) return 'Увеличьте скорость речи'
else return "Вы потрясающий спикер!"
}

我建议嵌套你的if语句和声明变量,因为你使用相同的条件很多。

// declare commonly used variables
let sNewAvg = newAverage <=5 // small new average
let mNewAvg = newAverage <=8 // medium new average
let sOut = output.length < 1 // small output
let bOut = output.length >= 1 // big output
// wpm = wordsPerMinute
if (wpm <= 119) { 
// everything smaller than 119
if (sNewAvg && sOut) {
return "..."
} else if (mNewAvg && sOut) {
return "..."
} else {
return "..."
}
// etc
} else if (wpm <= 180) {
// everything between 119 and 180
} else {
// everything bigger than 180
}

最新更新