我有多個功能,具體取決于程式中相同的 if-else 邏輯。而且我在每個人中都使用了這種 if-else 邏輯。由于 if-else 結構的代碼重復過多,我想通過減少 if-else 結構的使用,將我的小程式的形狀變成更緊湊的形狀。
這是我的功能的樣子:
function getBatteryColor(batteryLevel) {
var batteryColor = '#2CB65C';
// The if-else structure
if (batteryLevel >= 75) {
batteryColor = '#2CB65C';
} else if (batteryLevel < 75 && batteryLevel > 50) {
batteryColor = '#8FD601';
} else if (batteryLevel <= 50 && batteryLevel > 25) {
batteryColor = '#FFBF01';
} else if(batteryLevel <= 25 && batteryLevel > 10) {
batteryColor = '#FD894B';
}else{
batteryColor = '#FF554B';
}
return batteryColor;
}
function changeBatteryIcon(batteryLevel, iconId){
// Define some battery icons
var fullBatteryIcon = // full battery icon
var threeQuarterIcon = // three quarter battery icon
var halfBatteryIcon = // half battery icon
var quarterBatteryIcon = // quarter battery icon
var emptyBatteryIcon = // empty battery icon
var batteryIcon;
// Same if-else structure here
if (batteryLevel >= 75) {
batteryIcon = fullBatteryIcon;
} else if (batteryLevel < 75 && batteryLevel > 50) {
batteryIcon = threeQuarterBatteryIcon;
} else if (batteryLevel <= 50 && batteryLevel > 25) {
batteryIcon = halfBatteryIcon;
} else if(batteryLevel <= 25 && batteryLevel > 10) {
batteryIcon = quarterBatteryIcon;
}else{
batteryIcon = emptyBatteryIcon;
}
$('#' iconId).replaceWith(batteryIcon)
}
/* .
.
.
A couple of more functions like that, using the same if-else logic.
*/
減少這種 if-else 重復的可能方法是什么?我可以在一個地方(可能在一個函式中)擁有那個 if-else 邏輯并圍繞它撰寫我的其他函式嗎?或者,也許我可以撰寫一個巨大的函式(這可能不是一個好主意)來收集其中其他函式的所有功能?
我是javascript的菜鳥。我想也許“承諾結構 | 異步函式”會有所幫助。但我也不精通那個話題。提前謝謝你的幫助。
uj5u.com熱心網友回復:
您可以簡化條件并回傳一個表示狀態的字串并將物件用于各種值。
function getBatteryState(batteryLevel) {
if (batteryLevel >= 75) return 'full';
if (batteryLevel > 50) return 'moreThanHalf';
if (batteryLevel > 25) return 'moreThanQuarter';
if (batteryLevel > 10) return 'quarterOrLess';
return 'empty';
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/514353.html
