是否有一种简单的方法来将if语句压缩为一个函数以检查参数?

时间:2020-05-30 03:38:30

标签: javascript node.js error-handling discord.js

我有一个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;
        }

当前这是每个命令开头的样子,并且检查命令变得乏味。我曾尝试为其创建函数,但是没有尝试过,因此我怀疑自己是否走上了正轨。

1 个答案:

答案 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;