目前正在开发一个需要以不同货币显示一组值的应用程序。这是应用程序的一部分,但我在这里提供的所有内容都应该足够,因为这是我正在使用的主要部分。我有一个读入的json文件,它被存储到一个名为valuesArray
的数组中,这个数组包含所有信息,例如金额,货币等。货币的排序最高,从最低到最低像这样显示:
EUR 500.00
USD 200.00
这是我创建的代码,但似乎这对我拥有的货币越多越有效。我刚刚在函数上面放了一个数组声明,但是在这个函数的上面是我做所有json的东西并将它添加到数组中。 $scope.valuesArray
此时有数据。
$scope.valuesArray =[];
$scope.total = function()
{
var eur_total = 0;
var usd_total = 0;
if (typeof $scope.valuesArray != 'undefined')
{
var length = $scope.valuesArray.length;
for (var i = 0; i<length ; i++)
{
switch($scope.valuesArray[i].currency)
{
case "USD":
usd_total += parseFloat($scope.valuesArray[i].value);
break;
default:
eur_total += parseFloat($scope.valuesArray[i].value);
break;
}
}
}
var cost_total= [usd_total,eur_total];
total.sort(function(a, b){return b-a});
return format_to_decimal(total[0]) + "\x0A" + format_to_decimal(total[1]);
}
在我的for循环中,我遍历数组中的每个数据,并在switch语句中将每种货币分解,并查找每种货币的总金额。
最后一点是暂时的,因为我无法弄清楚如何做到这一点的不同方式。我从最高位置对我所拥有的货币进行了总计。
我通过format_numeric_with_commas
的函数调用返回函数,它以正确的货币格式给出了值,并显示了该值。将更新此内容并在我到达时添加该代码。但我已经使用索引作为一个粗略的逻辑来显示我想要摆脱它的东西。因此,在这种情况下,total[0]
应为500.00
,total[1]
应为200.00
。
除此之外,我希望能够显示每种货币的货币类型。就像上面的例子一样。
答案 0 :(得分:0)
您可以尝试使用货币索引保存数组中的所有计算。
$scope.valuesArray = [];
$scope.total = function () {
var totalsArray = [];
if (typeof $scope.valuesArray != 'undefined') {
var length = $scope.valuesArray.length
for (var i = 0; i < length; i++) {
if (!totalsArray[$scope.valuesArray[i].currency]) {
totalsArray[$scope.valuesArray[i].currency] = 0;
}
totalsArray[$scope.valuesArray[i].currency] += $scope.valuesArray[i].value;
}
}
var cost_total = [];
for (var k in totalsArray) {
cost_total.push(currency:k,value:totalsArray[k]);
}
cost_total.sort(function (a, b) {
return b.value - a.value
});
return format_to_decimal(cost_total[0].value)+cost_total[0].currency + "\x0A" + format_to_decimal(cost_total[1].value);