所以我有一个终端,用户输入命令。
我使用命令的第一个短语,并通过switch语句运行它,以确定要做什么。
switch(phrases[0]) {
case "boot":
// Do something
break;
case "switch":
case "app":
case "change":
case "switchapp":
case "changeapp":
// Do something
break;
case "help":
// Do something
break;
case "wipe":
case "erase":
case "restart":
case "forget":
case "clear":
case "undo":
// Do something else here
break;
default:
throw new Error("Unknown command: " + phrases[0]);
}
请注意,对于每个命令,我都有一些替代方法,以使用户在第一次尝试时更容易选择正确的命令。
但是-如果我在一个数组中有所有这些选项,而不是硬编码到switch函数中,我如何访问它们?
我曾考虑过将if/else与.some()结合使用,但这似乎有些笨拙:
if(bootCommands.some(function(name){return name == phrases[0]}))
// Do something
if(switchCommands.some(function(name){return name == phrases[0]})) {
// Do something
} else if(helpCommands.some(function(name){return name == phrases[0]})) {
// Do something
} else if(wipeCommands.some(function(name){return name == phrases[0]})) {
// Do something
} else {
throw new Error("Unknown command: " + phrases[0]);
}
当然,还有更简单的方法吗?