获取angularjs中对象的特定值的总和

时间:2015-03-11 07:28:13

标签: angularjs

我有这段代码:

 $scope.showReport = function(datas){
    data.post('dailyReservationReport',{date:$scope.date}).then(function (response){
        $scope.reports = response.data;
        console.log($scope.reports);

        var sum =0;
        for(var index in $scope.reports){
            if($scope.reports[index].departuredate == "2015-03-11"){
              sum += $scope.reports[index].departuredate;
            }
        }
        console.log(sum);

    })
};

我遇到的问题是我想获得离开日期等于2015-03-11的数据总和。我有2个数据所以总和应该输出2.

但这是我的console.log中的结果:

02015-03-112015-03-11

我做错了什么?请帮忙

3 个答案:

答案 0 :(得分:2)

根据您问题中的行:: “我有2个数据,因此总和应输出2”。我认为您只需要增加sum,因为:

var sum =0;
for(var index in $scope.reports){
    if($scope.reports[index].departuredate == "2015-03-11"){
        sum++;
    }
}
console.log(sum);

答案 1 :(得分:0)

我们必须使用parseInt(),因为我们的值存储在var数据类型中它将是字符串格式,如果我们正在为此添加,那么它将返回字符串的连接,所以我们必须使用parseInt()

var sum =0;
    for(var index in $scope.reports){
        if($scope.reports[index].departuredate == "2015-03-11"){
          sum = parseInt(sum)+parseInt($scope.reports[index].departuredate); -->changed this line
        }
    }

答案 2 :(得分:0)

您还可以使用过滤器计算具有特定出发日期的项目:

$filter('filter')($scope.reports, { 'departuredate': '2015-03-11' }).length