pmd
  • ternary
  • 2016-09-28 57 views 0 likes 
    0
    $scope.nodataCheck("W",$scope.groups) && $scope.nodataCheck("b",$scope.groups) ?$scope.noWatsonData=true:$scope.noWatsonData=false; 
    

    我得到一个PMD错误说,“避免在操作数分配;这样可以使代码更复杂,更难阅读这一段指示的 使用赋值运算符'='而不是等号运算符'=='的bug。“解决PMD错误“的操作数,避免作业......”

    我该如何解决这个问题?

    回答

    0

    您正在分配truefalse$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

    相关问题