我在javascript中有一个if语句
if(prop < 0 || trans < 0 || queue < 0 || proc < 0
|| prop > 1 || trans > 1 || queue > 1 || proc > 1
|| prop == "" || trans == "" || queue == "" || proc == ""){
有没有办法压缩这个?适用于prop
,trans
,queue
和proc
。我想创建一个if语句,如果值不在0到1之间,或者它有一个空字符串值
答案 0 :(得分:4)
var checkThese = [prop, trans, queue, proc];
var result = checkTruthinessOf(checkThese);
function checkTruthinessOf(things) {
var returnValue = false;
[].forEach.call(things, function(thing){
if (thing < 0 || thing > 1 || thing == "") returnValue = true;
});
return returnValue;
};
答案 1 :(得分:4)
var checkThese = [prop, trans, queue, proc];
var result = checkTruthinessOf(checkThese);
function checkTruthinessOf(things) {
return things.every(function(el) {
return (el < 0 || el > 1 || el === "");
});
}
答案 2 :(得分:1)
我从jQuery中学习了这个练习。它消除了额外的数组,只需传入尽可能多的参数。然后使用rink函数立即验证所有内容。
var result = checkTruthinessOf(prop, trans, queue, proc);
function checkTruthinessOf(/*unlimited arguments*/) {
return Array.prototype.every.call(arguments, function(thing) {
return (thing < 0 || thing > 1 || thing === "");
});
}