$scope.nodataCheck("W",$scope.groups) && $scope.nodataCheck("b",$scope.groups) ?$scope.noWatsonData=true:$scope.noWatsonData=false;
我收到一个pmd错误,说“避免在操作数中分配;这会使代码更复杂,更难阅读。这有时候 表示使用赋值运算符'='而不是等于运算符'=='的错误。“
我怎么解决这个问题?
答案 0 :(得分:0)
您要将true
或false
分配给$scope.noWatsonData
。这是埋在行尾,所以很难看到,很容易被忽视。您可以将作业移到开头 - 这样很明显,此行确定了$scope.noWatsonData
的新值:
$scope.noWatsonData = $scope.nodataCheck("W",$scope.groups)
&& $scope.nodataCheck("b",$scope.groups)
? true
: false;
由于我们现在只是根据条件分配真/假,我们可以在没有三元运算符的情况下分配它,并使其更短:
$scope.noWatsonData = $scope.nodataCheck("W",$scope.groups)
&& $scope.nodataCheck("b",$scope.groups);
供参考,这是关于PMD JavaScript规则AssignmentInOperand