Javascript json文件中不同货币的总数
当前正在处理一个需要以不同货币显示一组值的应用程序。这是应用程序的一部分,但我在这里提供的一切都应该足够了,因为这是我正在处理的主要部分。我有一个json文件,它被读入并存储在一个名为Javascript json文件中不同货币的总数,javascript,arrays,json,Javascript,Arrays,Json,当前正在处理一个需要以不同货币显示一组值的应用程序。这是应用程序的一部分,但我在这里提供的一切都应该足够了,因为这是我正在处理的主要部分。我有一个json文件,它被读入并存储在一个名为valuesArray的数组中,该数组包含所有信息,如金额、货币等。货币按从高到低的顺序排列,如下所示: EUR 500.00 USD 200.00 这是我创建的代码,但似乎我拥有的货币越多,它就越无效。我刚刚在函数上面放了一个数组声明,但就在这个函数上面,我做了所有json的工作,并将其添加到数组中$scope
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]);
}
$scope.valuesArray=[];
$scope.total=函数()
{
var eur_total=0;
var usd_总计=0;
if(typeof$scope.valuesArray!=“未定义”)
{
变量长度=$scope.valuesArray.length;
对于(var i=0;i您可以尝试使用货币指数保存数组中的所有计算
$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);
$scope.valuesArray=[];
$scope.total=函数(){
var totalsArray=[];
if(typeof$scope.valuesArray!=“未定义”){
变量长度=$scope.valuesArray.length
对于(变量i=0;i
不是$scope.valuesArray
数组吗?它应该是var length=$scope.valuesArray.length
?我看不到你的数组。不妨给我们看一下你的$scope
对象的所有相关部分。@PHPglue很抱歉,是的,我编辑了它。整理它时意外删除了一些东西。谢谢你指出它。I'v我只是在函数上面放了一个数组声明,但就在这个函数上面,我做了所有json的事情,并将其添加到数组中。$scope.valuesArray
在这一点上有数据。我不确定这里的问题是什么?你需要执行自然排序吗?@PHPglue从json获取数据,它有货币和amount属性。分离货币并添加每种货币的总计。将不同的总计排序在一起,使最高的位于顶部,并用适当的货币标签显示。例如,total[0]
是欧元,因此类似于“EUR”+total[0]
=EUR 300.00
这是一种简单的方法,但这意味着我需要知道每个索引中都有什么,并根据货币的数量用字符串标记,使行变长。Math.max.apply(null,arrayHere)
将为您提供数组中的最高数字。我尝试过这个方法,但当我使用控制台时,它会给我NaN值。您有什么想法吗?抱歉,更新。使用这种方法,您可以拥有任意数量的货币。这会删除每个值的货币标题,不是吗?当它被推入数组时?使用保存的货币更新y、 它能解决你的问题吗?