Javascript 我如何才能优化long if else到优化版本
在下面的代码中,我根据ANDIN操作设置两个作用域变量的状态 根据键的不同,我调用相关的方法(两种方法的区别在于检查prop3 我觉得它有相当冗余的代码,但不确定如何优化它。 你知道如何用短代码实现我的目标吗Javascript 我如何才能优化long if else到优化版本,javascript,angularjs,Javascript,Angularjs,在下面的代码中,我根据ANDIN操作设置两个作用域变量的状态 根据键的不同,我调用相关的方法(两种方法的区别在于检查prop3 我觉得它有相当冗余的代码,但不确定如何优化它。 你知道如何用短代码实现我的目标吗 if(key =='White') _checktests1(); else _checktests2 (); var _checktests1 = function () { if ($scope.test.Prop1 == "one" && $
if(key =='White')
_checktests1();
else
_checktests2 ();
var _checktests1 = function () {
if ($scope.test.Prop1 == "one" && $scope.test.Prop2 == "two")
$scope.checkWhiteStatus = true;
else
$scope.checkWhiteStatus = false;
if ($scope.test.Prop1 == "three" && $scope.test.Prop2 == "four" )
$scope.checkGreenStatus = true;
else
$scope.checkGreenStatus = false;
}
var _checktests2 = function () {
if ($scope.test.Prop1 == "one" && $scope.test.Prop2 == "two" && $scope.test.Prop3 == "five")
$scope.checkWhiteStatus = true;
else
$scope.checkWhiteStatus = false;
if ($scope.test.Prop1 == "three" && $scope.test.Prop2 == "four" $scope.test.Prop6 == "six")
$scope.checkGreenStatus = true;
else
$scope.checkGreenStatus = false;
}
你可以做:
$scope.checkWhiteStatus = ($scope.test.Prop1 == "one" && $scope.test.Prop2 == "two" && (key =='White' || $scope.test.Prop3 == "five"));
$scope.checkGreenStatus = ($scope.test.Prop1 == "three" && $scope.test.Prop2 == "four" && (key =='White' || $scope.test.Prop6 == "six"));
您也可以执行
var t=$scope.test;
来保存更多的字母。@Thom-x,但有时$scope.test.Prop3在我的例子中为null。此外,我也尝试过这种方法,但问题是如果您将某个内容分配给Prop6,并且稍后您希望为null,那么它将失败。@immirza:不确定您引用的内容。任何地方都没有分配;以及此代码与问题中的代码完全相同。如果有问题,原始代码也会有问题。@Bergi,我的范围变量在分页加载时会用valies更新。因此,假设所有范围变量都有正确的值或null。然后$scope.checkWhiteStatus
和$scope.checkGreenStatus
=false.你想要什么?