【发布时间】:2023-01-09 16:34:24
【问题描述】:
我正在重构一个 switch 语句,其中我在其中一种情况下执行 if 条件,其中 if 将 break 切换情况,而 else 将 return。
是否可以将其作为更快的条件执行,例如三元或其他条件,而不是标准的 if/else?
原版的
let someCondition;
// someCondition is set at some point
switch(toSwitchOn) {
case myCase:
if (someCondition) {
sendObj({someKey: 'someVal', condition: true});
break;
} else {
sendObj({condition: false});
return false;
}
}
到目前为止重构
let someCondition;
// someCondition is set at some point
switch(toSwitchOn) {
case myCase:
sendObj({
...!!someCondition && {someKey: 'someVal'},
condition: !!someCondition
});
if (someCondition) { break; } else {return false}
}
【问题讨论】:
-
switch只有一个case有什么意义?那应该只是if。 -
如果它变得更加混乱,那么创建更简洁的代码就没有额外的意义了。原始代码比重构后的版本更具可读性。
-
@Barmar 说的(re
switch和一个case)。还有:第一个版本有什么问题?它清晰,易于阅读,易于调试,...
标签: javascript switch-statement return break