angular.forEach语法错误

时间:2015-02-17 08:39:11

标签: html angularjs

我想得到我的数组的总和,我使用angular.foreach但是当我运行程序时它会一直显示“语法错误”。怎么了?错误说是在var sum += value.fare;我认为我的语法正确所以我想知道为什么我得到语法错误谢谢

我的代码是:

angular.forEach($scope.ticketList[fare], function(value, key){  
        var sum += value.fare;
         console.log(sum);
         //alert(i);
      });

6 个答案:

答案 0 :(得分:1)

尝试:

var sum;
angular.forEach($scope.ticketList, function(value, key){  
    sum += value.fare;
});

如果这无效,我们需要查看您的$scope.ticketList

答案 1 :(得分:1)

您正在执行+=这意味着左侧应该是值,但您每次使用关键字var再次定义它,因此语法错误。

在外面定义sum,然后执行:

var sum = 0;
angular.forEach($scope.ticketList[fare], function(value, key){  
    sum += value.fare;
    console.log(sum);
    //alert(i);
});

答案 2 :(得分:1)

不应该在外面声明的var sum不能用赋值来定义: - )

var sum;
angular.forEach($scope.ticketList, function(value, key){  
    sum += value.fare;
})

答案 3 :(得分:1)

你需要:

  • 在forEach循环之外移动总和
  • init sum with default vlaue,0表示int,“”表示字符串。

现在您的代码应该可以运行:

var sum = 0;
angular.forEach($scope.ticketList[fare], function(value, key){  
     sum += value.fare;
});
console.log(sum);

在你的代码中,每个循环迭代都声明了sum,所以它的值没有转发到下一个循环迭代。在forEach之外提取它的声明将确保在循环结束后保留​​您的值。

答案 4 :(得分:1)

您必须在sum方法之外定义forEach,因为它不知道如何在第一次迭代期间求和(初始化时总和为null,所以你首先将value.fare添加到null。尝试:

var sum = 0;
angular.forEach($scope.ticketList[fare], function(value, key){  
     sum += value.fare;
});

答案 5 :(得分:1)

首先在foreach循环外声明变量sum

var sum;
angular.forEach($scope.ticketList, function(value, key){  
    sum=sum+value.fare;
})