Javascript 如何将值按角度推送到嵌套对象?

Javascript 如何将值按角度推送到嵌套对象?,javascript,angularjs,loops,foreach,push,Javascript,Angularjs,Loops,Foreach,Push,我有以下数据: { "fruits": [ { "name": "apple", "prices": [ { "2015": 2, "2014": 3, "2013": 1 } ] },

我有以下数据:

{
    "fruits": [
        {
            "name": "apple",
            "prices": [
                {
                    "2015": 2,
                    "2014": 3,
                    "2013": 1
                }
            ]
        },
        {
            "name": "banana",
            "prices": [
                {
                    "2015": 4,
                    "2014": 1,
                    "2013": 3
                }
            ]
        }
    ]
}
在我的.js文件中,在我的控制器中,我想计算最近一年和前一年的价格之间的差额

例如:

苹果=3-2=-1

因此,在我的HTML中,我可以:

<div ng-repeat="fruit in fruits">
    {{fruit.name}}, {{fruit.change}}
</div>

只是一个输入错误,而不是
这个
使用
水果
,它会工作的

function calculate(targetYear){
    angular.forEach($scope.fruits, function(fruit, key) {
        $scope.fruits[key].change = fruit.prices[0][targetYear] - fruit.prices[0][targetYear-1];
    });
}

您可以使用以下函数:
calculate(2015)
并且它将为每个
水果设置。更改
值以显示2015/2014年之间的更改

我认为您可以在查看页面中执行此操作,从控制器中获取两个值,并计算工厂中http调用填充的数据,还是类似于静态json或firebase的其他内容?@JoeLloyd点…@Elima不,我需要它在.js中file@JoeLloyd是的,正确的否决理由?价格是对象,它们没有名为
0
1
@Juhana的键。如何获得价格的
0
1
。@murid他们没有这样的键。对象是无序的。如果要查找具有最高值的键,必须首先获取键,对它们进行排序,然后选择第一个。已更改。请现在试一试
function calculate(targetYear){
    angular.forEach($scope.fruits, function(fruit, key) {
        $scope.fruits[key].change = fruit.prices[0][targetYear] - fruit.prices[0][targetYear-1];
    });
}