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]){//如果您发现了一个数字以外的字符…}