我必须获得unit_price数字的总和。我怎样才能做到这一点?
数组如下所示:
$scope.items = [
{
id: '1',
name: 'Phone',
quantity: '1',
unit_price: '200'
},
{
id: '2',
name: 'IPhone',
quantity: '1',
unit_price: '240'
}
];
答案 0 :(得分:8)
您reduce
数组:
var total = $scope.items.reduce(function(x,y) { return x + parseInt(y.unit_price) }, 0);
答案 1 :(得分:1)
试试这个:
var sum = 0;
angular.forEach($scope.items, function(value, key){
sum = sum + value.unit_price;
});
答案 2 :(得分:0)
尽管您可以 为此使用reduce
,但没有理由这样做,很容易出错。 ({reduce
在使用预定义的,可重用的reducer进行功能编程时非常有用;否则,它会变得过于复杂。)
您只需要一个简单的循环,也许需要进行一些破坏:
let sum = 0;
for (const {unit_price} of $scope.items) {
sum += +unit_price;
// ^−−−−−−−−−−− converts your strings to numbers
}
实时示例:
const $scope = {};
$scope.items = [
{
id: '1',
name: 'Phone',
quantity: '1',
unit_price: '200'
},
{
id: '2',
name: 'IPhone',
quantity: '1',
unit_price: '240'
}
];
let sum = 0;
for (const {unit_price} of $scope.items) {
sum += +unit_price;
}
console.log(sum);
将unit_price
字符串重新转换为数字:我的答案here列出了您执行此操作的各种选项,每种选项都有其优点和缺点。我已经使用了上面的一元+
,但是还有其他选择。