我有以下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;
}发布于 2019-07-15 21:08:32
完全去掉switch语句怎么样?
var something = {
aa: alphabet === "A",
bb: alphabet === "B",
cc: alphabet === "C"
}发布于 2019-07-15 21:04:49
一种方法是使用键的数组和一个循环,该循环将该字母与键进行比较,并使用任何适用的逻辑。在您的示例中,它将是一个简单的includes()或startsWith()
类似于:
const keys = ['aa','bb', 'cc'];
const lower = alphabet.toLowerCase();
keys.forEach(k => something[k] = k.includes(lower))发布于 2019-07-15 21:03:56
您可以使用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;https://stackoverflow.com/questions/57040207
复制相似问题