好吧,我发现下面的代码非常重复和烦人.在不使用数组作为起点的情况下重构代码的任何其他方法(也就是说,为了避免在代码中使用array [x],array [y],array [z]作为从数组开始的结果,因为x,y,z完全不相关,为了便于阅读,将它们分组是没有意义的)
var x = "";
var y = "";
var z = "";
...
...variables get set
if(x != undefined && x != "")
doSomethingHere();
if(y != undefined && y != "")
doSomethingThere();
if(z != undefined && z != "")
doSomethingElse();
...
Run Code Online (Sandbox Code Playgroud)
至少,您可以将验证规则分解为自己的功能:
function IsValid(x)
{
return (x != undefined && x != "");
}
var x = "";
var y = "";
var z = "";
//...
//...variables get set
if(IsValid(x)) doSomething();
if(IsValid(y)) doSomething();
if(IsValid(z)) doSomething();
Run Code Online (Sandbox Code Playgroud)
除了joel所说的你还可以做以下事情:
function doOnValid(x, func){
if(x != undefined && x != "") func();
}
Run Code Online (Sandbox Code Playgroud)
然后你可以这样做:
doOnValid(x, doSomething);
doOnValid(y, doSomethingElse);
doOnvalid(z, function() { /*Yay lambda function*/ });
Run Code Online (Sandbox Code Playgroud)