我有一个switch
语句用于处理命令,它按预期工作。但是,我也有很多命令/案例。错误检查是为了确保如果键入的不是数字,则程序不会崩溃。有没有办法以某种方式将那些if statements
压缩成function
?
case "test":
if (typeof args[1] === 'string')
{
args[1] = parseInt(args[1])
Functions.packs = args[1];
}
else if(Number.isNaN(+args[1]))
{
message.reply("The command was invalid.");
break;
}
else
{
message.reply("The command was invalid.");
break;
}
当前这是每个命令开头的样子,并且检查命令变得乏味。我曾尝试为其创建函数,但是没有尝试过,因此我怀疑自己是否走上了正轨。
答案 0 :(得分:1)
我会尝试使用.toString()强制将所有内容都设置为字符串,然后解析结果()。允许您仅测试NaN ...
var numberTest = function(testArg){
var testString = testArg.toString();
var testNumber = parseInt(testString);
var returnObj = {
number: testNumber,
valid: Number.isNaN(testNumber)
};
return returnObj;
}
case "test":
var argTest = numberTest(args[1]);
if(argTest.valid){
Functions.packs = argTest.number;
}
else{
message.reply("The command was invalid.");
}
break;