2017-06-22 48 views
0

嗨,我真不知道如何添加所有的號碼時,我得到了jsonObjectArray我使用_.map在lodash和角度爲每個在獲取數據jsonObjectArray獲取總數的jsonobjectArray角

$scope.dataNumbers = _.map(result.numbers); 
    angular.forEach($scope.dataNumbers, function(value, key) { 
    console.log(value.allNumbers) 
}) 

當我控制檯這是響應(8.17,32.01,37.45)。

我試圖將它們加入到這樣Number(value.allNumbers) + Number(value.allNumbers)但結果是(16.34,64.02,74.9)

很抱歉的基本問題

+0

可能的複製的[如何找到數字數組的總和](https://stackoverflow.com/questions/1230233/how-to-find-the-sum-of-an-array-of-numbers) – str

回答

1

你可以將它保存到一個$scope或全局JS var

$scope.sumOfNum = 0; 
$scope.dataNumbers = _.map(result.numbers); 
    angular.forEach($scope.dataNumbers, function(value, key) { 
    $scope.sumOfNum += Number(value.allNumbers); 
    console.log(value.allNumbers); 
    console.log($scope.sumOfNum); 
}); 
1

可以使用減少javascript函數,

var total=$scope.dataNumbers.reduce(function(total,num){ 
return total+num 
}); 
1

使用angular.forEach循環的result.numbers並將它們添加

var _total; 
angular.forEach(result.numbers, function(value) { 
    _total += Number(value); 
}) 
console.log(_total); 

或者使用reduce

$scope.total = result.numbers.reduce(function(total, curr) { 
    return total + curr; 
}); 
2

使用reduce代替

const result = { 
 
    numbers: [8.17, 32.01 , 37.45] 
 
}; 
 

 
const allNumbers = result.numbers.reduce((acc, curr) => { 
 
    return acc + Number(curr); 
 
}, 0); 
 

 
console.log(allNumbers);

1

如果要計算存儲在$ scope.dataNumbers的allNumbers場數的總和,儘量

var sum = _.sum(_.map($scope.dataNumbers, 'allNumbers')); 
0

通常的方式來總結JSON對象數組值

var totalNumbers = 0; 
angular.forEach($scope.dataNumbers, function(value, key) { 
    totalNumbers += parseInt(value); 
}); 
console.log(totalNumbers);