在JavaScript中使用if语句时,我不得不写出一些相当冗长的条件。这是一个示例,其中三个数字必须为0-100:
if ((num1 > 100 || num1 < 0) || (num2 > 100 || num2 < 0) ||
(num3 > 100 || num3 < 0)) {
return 'One of these is invalid';
} else {
return 'Ok, we are good.';
}
我不知道是否可以缩短时间,我尝试搜索类似的问题,但找不到任何东西。但是可以在JavaScript中执行类似的操作吗? (或者,如果不是使用JavaScript,是否可以使用其他语言?)
if (num1, num2, num3 > 100 || num1, num2, num3 < 0) {
return 'One of these is invalid';
} else {
return 'Ok, we are good.';
}
答案 0 :(得分:1)
您可以从num
s创建一个数组,然后检查数组中的every
项目是否通过测试:
return [num1, num2, num3].every(num => num <= 100 && num >= 0)
? 'Ok, we are good.';
: 'One of these is invalid'
const verify = (num1, num2, num3) => (
[num1, num2, num3].every(num => num <= 100 && num >= 0)
? 'Ok, we are good.'
: 'One of these is invalid'
);
console.log(verify(50, 50, 50));
console.log(verify(50, 100, 50));
console.log(verify(50, 101, 50));
如果偶然地,nums
是传递给函数的参数,如上例所示,您可以立即使用 rest 语法从这些参数创建一个数组:
const verify = (someOtherArg, ...arr) => (
arr.every(num => num <= 100 && num >= 0)
? 'Ok, we are good.'
: 'One of these is invalid'
);
console.log(verify('someArg', 50, 50, 50));
console.log(verify('someArg', 50, 100, 50));
console.log(verify('someArg', 50, 101, 50));
答案 1 :(得分:1)
您可以将它们放入数组中,而不是将多个值作为单个变量处理。在验证/钳位值的情况下,您实际上可以使用Math.min
和Math.max
来进一步:
if (Math.min(num1, num2, num3) < 0 || Math.max(num1, num2, num3) > 100) {
return "No bueno, dude!"
} else {
return "I dig it."
}