Javascript 有没有一种简单的方法可以将if语句压缩成一个函数来检查参数?

Javascript 有没有一种简单的方法可以将if语句压缩成一个函数来检查参数?,javascript,node.js,error-handling,discord.js,Javascript,Node.js,Error Handling,Discord.js,我有一个switch语句来处理命令,它可以按预期工作。然而,我也有大量的命令/案例。错误检查是为了确保程序在键入非数字的内容时不会崩溃。有没有办法将那些if语句压缩成函数 case "test": if (typeof args[1] === 'string') { args[1] = parseInt(args[1]) Functions.packs = args[1]; } el

我有一个
switch
语句来处理命令,它可以按预期工作。然而,我也有大量的命令/案例。错误检查是为了确保程序在键入非数字的内容时不会崩溃。有没有办法将那些
if语句
压缩成
函数

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;
        }

这就是当前每个命令的开始部分,检查命令变得越来越乏味。我尝试过为它生成一个函数,但没有任何效果,因此我怀疑我的方法是否正确。

我会尝试使用.toString()强制所有内容为string,然后使用parseInt()生成结果。允许您仅测试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;

什么是
Functions.packs
?另一个名为
Functions
的文件中的变量。变量需要设置为用户键入的第二个参数(!test 2意味着packs=2)等。只需检查他是否输入了一个数字,否则(否则)显示错误消息您可以使用正则表达式执行此操作,例如:if(/[^\d]+/.test(args[1]){//如果您发现了一个数字以外的字符…}