2017-06-22 49 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);