我有多个函数,取决于程序中相同的if-else逻辑。我在他们每一个人里面都用这个“如果-否则”的逻辑。由于这是太多的代码重复if-否则的结构,我想把我的小程序的形状变成一个更紧凑的结构,减少使用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--否则逻辑,然后围绕它编写我的其他函数吗?或者,也许我可以编写一个巨大的函数(这可能不是一个好主意)来收集其他函数的所有功能吗?
我是javascript的新手。我想也许一个“允诺结构\异步函数”能帮上忙。但我对这个话题也不太精通。谢谢你提前提供帮助。
发布于 2022-10-15 14:32:29
您可以简化条件,并返回表示状态的字符串,并将对象用于各种值。
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://stackoverflow.com/questions/74080232
复制相似问题