如何计算 Angularjs 中逗号值的总和?
How To Total Sum Along With Comma Values in Angularjs?
我在我的应用程序中使用 MEAN 堆栈,AngularJS 作为我的前端。如何 total sum
与 comma value
一起,实际上我得到了 total sum value
但 comma value
不是 calculated
...My Plunker 例如 :- 没有逗号 amt
值总和答案我得到 3850.20,然后 comma
of amount payment
值总和我得到 2.00,期望像 3850.20,如果任何人都知道解决方案对我们有帮助谢谢....
我的控制器:-
.filter('sumOfValue', function () {
return function (data, key) {
debugger;
if (angular.isUndefined(data) && angular.isUndefined(key))
return 0;
var sum = 0;
angular.forEach(data,function(v,k){
sum = sum + parseFloat(v[key]);
});
return sum.toFixed(2);
}
})
我的Html:-
<td >{{mani.amt}}</td>
<td >{{mani.amount_payment }}</td>
我的数据:-
{
"_id": "5816f4fad0be79f809519f98",
"user": {
"_id": "57400c32bd07906c1308e2cf",
"displayName": "mani selvam"
},
"__v": 0,
"created": "2016-10-31T07:38:34.999Z",
"remarks": "-",
"status": "pending",
"amt": "1925.10",
"cheque_currency": "Rs",
"cheque_value": "300",
"amount_payment": "1,925.10",
"debitnote_no_payment": "3",
"supplier_name": "karikalan",
"buyer_name": "Manidesigns"
},
{
"_id": "5816f4fad0be79f809519f98",
"user": {
"_id": "57400c32bd07906c1308e2cf",
"displayName": "mani selvam"
},
"__v": 0,
"created": "2016-10-31T07:38:34.999Z",
"remarks": "-",
"status": "pending",
"amt": "1925.10",
"cheque_currency": "Rs",
"cheque_value": "300",
"amount_payment": "1,925.10",
"debitnote_no_payment": "3",
"supplier_name": "karikalan",
"buyer_name": "Manidesigns"
},
我创建了 Plunker 以供参考:- Plunker
我认为你应该在格式化后避免使用 storing/passing 数字,所以你应该将数字 "amount_payment": "1,925.10"
作为 "amount_payment": "1925.10"
(不带逗号)传递,或者更好地作为 float:"amount_payment": 1925.10
,然后您可以在视图中使用 Number 的 toLocalString() 函数对其进行格式化:(1925.10).toLocaleString()
甚至 ("1925.10").toLocaleString()
.在您的情况下,您可以在求和时删除逗号:
angular.forEach(data,function(v){
sum = sum + parseFloat(v[key].replace(',', ''));
});
您也可以使用 reduce() 函数求和:
app.filter('sumOfValue', function () {
return function (data, key) {
// debugger;
if (!data || !data[0] || !data[0][key]) {
return 0;
}
var sum = data.reduce(function(sum, val) {
return sum + parseFloat(val[key].replace(',', ''));
}, 0);
return sum.toFixed(2);
}
})
我在我的应用程序中使用 MEAN 堆栈,AngularJS 作为我的前端。如何 total sum
与 comma value
一起,实际上我得到了 total sum value
但 comma value
不是 calculated
...My Plunker 例如 :- 没有逗号 amt
值总和答案我得到 3850.20,然后 comma
of amount payment
值总和我得到 2.00,期望像 3850.20,如果任何人都知道解决方案对我们有帮助谢谢....
我的控制器:-
.filter('sumOfValue', function () {
return function (data, key) {
debugger;
if (angular.isUndefined(data) && angular.isUndefined(key))
return 0;
var sum = 0;
angular.forEach(data,function(v,k){
sum = sum + parseFloat(v[key]);
});
return sum.toFixed(2);
}
})
我的Html:-
<td >{{mani.amt}}</td>
<td >{{mani.amount_payment }}</td>
我的数据:-
{
"_id": "5816f4fad0be79f809519f98",
"user": {
"_id": "57400c32bd07906c1308e2cf",
"displayName": "mani selvam"
},
"__v": 0,
"created": "2016-10-31T07:38:34.999Z",
"remarks": "-",
"status": "pending",
"amt": "1925.10",
"cheque_currency": "Rs",
"cheque_value": "300",
"amount_payment": "1,925.10",
"debitnote_no_payment": "3",
"supplier_name": "karikalan",
"buyer_name": "Manidesigns"
},
{
"_id": "5816f4fad0be79f809519f98",
"user": {
"_id": "57400c32bd07906c1308e2cf",
"displayName": "mani selvam"
},
"__v": 0,
"created": "2016-10-31T07:38:34.999Z",
"remarks": "-",
"status": "pending",
"amt": "1925.10",
"cheque_currency": "Rs",
"cheque_value": "300",
"amount_payment": "1,925.10",
"debitnote_no_payment": "3",
"supplier_name": "karikalan",
"buyer_name": "Manidesigns"
},
我创建了 Plunker 以供参考:- Plunker
我认为你应该在格式化后避免使用 storing/passing 数字,所以你应该将数字 "amount_payment": "1,925.10"
作为 "amount_payment": "1925.10"
(不带逗号)传递,或者更好地作为 float:"amount_payment": 1925.10
,然后您可以在视图中使用 Number 的 toLocalString() 函数对其进行格式化:(1925.10).toLocaleString()
甚至 ("1925.10").toLocaleString()
.在您的情况下,您可以在求和时删除逗号:
angular.forEach(data,function(v){
sum = sum + parseFloat(v[key].replace(',', ''));
});
您也可以使用 reduce() 函数求和:
app.filter('sumOfValue', function () {
return function (data, key) {
// debugger;
if (!data || !data[0] || !data[0][key]) {
return 0;
}
var sum = data.reduce(function(sum, val) {
return sum + parseFloat(val[key].replace(',', ''));
}, 0);
return sum.toFixed(2);
}
})