[英]same return variable for different functions
我有很多用于验证的功能。 我可以对所有功能使用相同的返回变量吗?
function fn1() {
if () {..
first = true;
} else {
first = false;
}
return first;
}
function fn2() {
if () {..
second = true;
} else {
second = false;
}
return second;
}
function fn3() {
if () {..
three = true;
} else {
three = false;
}
return three;
}
$('#submitButton').click(function () {
var returnVal = true;
returnVal1 = fn1();
returnVal2 = fn2();
returnVal3 = fn3();
if (returnVal1 && returnVal2 && returnVal3) {
returnVal = true;
} else {
returnVal = false;
}
return returnVal;
});
代替这些诸如returnVal1
, returnVal2
和returnVal3
这样的returnVal1
,我可以对所有函数returnVal
使用returnVal
吗? 我可以对所有函数返回使用单个变量吗?
谢谢
您可以将所有变量放在一起,并仅在if
子句中调用验证函数:
$('#submitButton').click(function () {
if ( first() && second() && third() ) {
return true;
} else {
return false;
}
});
或更短,如@FishBasketGordo所建议的那样,如果唯一需要返回值:
$('#submitButton').click(function () {
return first() && second() && third();
});
如果确认是相当重的计算,这也为您节省了一些时间,因为if
-clause是lazely评估。
您可以用以下代码替换最后一个函数
$('#submitButton').click(function(){
return (first() && second() && third());
});
是的,您可以,但是如果您希望使用一个结束变量来确定是否有任何一个失败,那么我建议这样做:
var isValid = first();
if(!second())
isValid = false;
if(!three())
isValid = false;
这样,您就不会最终重置带有后续结果的无效标志。
这样做的好处是,如果您有很多验证函数,则可以将它们放入数组中并编写更少的代码...
var validators = [first, second, three];//etc..
var isValid = true;
for(var i = 0; i < validators.length; i++){
if(!validators[i]()){
isValid = false;
break;
}
}
//do something with isValid
或者,如果您有专用的“全部验证”功能,...
var validators = [first, second, three];
function validateAll(){
for(var i = 0; i < validators.length; i++){
if(!validators[i]()){
return false;
}
}
return true;
}
如果returnValues是将要组合的原语,则可以轻松地组合它们的分配。 如果您愿意,可以在代码段中将其编写如下:
$('#submitButton').click(function () {
var returnVal = first() && second() && third();
return !!returnVal; //ensure boolean is returned
});
function validateFunction(){
var result;
// First Function Condition\
if(First Function)
{
result = true;
else
result = false;
}
checkTruFalse(result);
// Second Function Condition
if(Second Function)
{
result = true;
else
result = false;
}
checkTruFalse(result);
// Third Function Condition
if(Third Function)
{
result = true;
else
result = false;
}
checkTruFalse(result);
}
}
function checkTruFalse(result)
{
if (result == false ){ alert('ERROR'); break; }
}
$('#submitButton').click(function(){ validateFunction(); });
根据情况,您可以在checkTruFalse函数内传递另一个变量来设置有关特定错误的警报消息。
function checkTruFalse(result, message ){
alert('ERROR :: '+message);
}
checkTruFalse( result, 'Invalid Input for Numeric Value');
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.