我有以下switch语句。 但是这里有重复的代码,我想摆脱它。 请重构此代码。
var something;
switch(alphabet) {
case "A":
something.aa = true;
something.bb = false;
something.cc = false;
break;
case "B":
something.aa = false;
something.bb = true;
something.cc = false;
break;
case "C":
something.aa = false;
something.bb = false;
something.cc = true;
break;
}
答案 0 :(得分:2)
如何完全不使用switch语句?
var something = {
aa: alphabet === "A",
bb: alphabet === "B",
cc: alphabet === "C"
}
答案 1 :(得分:0)
因此,在任何时间点,只有一种情况是正确的。请记住,您可以执行以下操作:
var something = {aa:false,bb:false,cc:false},
switch(alphabet) {
case "A":
something.aa = true;
break;
case "B":
something.bb = true;
break;
case "C":
something.cc = true;
break;
}
希望有帮助。 :-)
答案 2 :(得分:0)
您可以将对象设为true
的对象,例如
var targets = {
A: 'aa',
B: 'bb',
C: 'bb',
},
something = { aa: false, bb: false, cc: false };
// usage
if (alphabet in targets) something[targets[alphabet]] = true;
答案 3 :(得分:0)
一种方法是使用键数组和一个循环,该循环将字母与键以及适用的逻辑进行比较。在您的示例中,它将是简单的includes()
或startsWith()
类似的东西:
const keys = ['aa','bb', 'cc'];
const lower = alphabet.toLowerCase();
keys.forEach(k => something[k] = k.includes(lower))