嗨,我真的不知道如何在获取jsonObjectArray时添加所有数字我在lodash中使用_.map并且每个都使用angular来获取jsonObjectArray中的数据< / p>
$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 :(得分: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 :(得分: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);
});
答案 2 :(得分:1)
你可以在javascript中使用reduce函数,
var total=$scope.dataNumbers.reduce(function(total,num){
return total+num
});
答案 3 :(得分: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;
});
答案 4 :(得分:1)
如果你想计算$ scope.dataNumbers的allNumbers字段中存储的数字的总和,试试
<v-card transition="v-slide-y-transition">...</v-card>
答案 5 :(得分:0)
通常的方法来对json对象数组值进行求和
var totalNumbers = 0;
angular.forEach($scope.dataNumbers, function(value, key) {
totalNumbers += parseInt(value);
});
console.log(totalNumbers);