Angular.js中的OrderBy for(key,value)对象反向基于键

时间:2015-05-20 09:01:38

标签: javascript angularjs

我想使用javascript / Angular.js以相反的顺序显示以下结果。这是一个关联数组,其键为Year(Numerical),value为当年月份的对象数组。

 var obj =  { '1991': [{'year':1991,'month':'Jan'},{'year':1991,'month':'Feb'}],
      '1992': [{'year':1992,'month':'March'},{'year':1992,'month':'Dec'}],
      '2000': [{'year':2000,'month':'Jan'}]
    }

因此,当这基本上显示使用ng-repeat="(key,value) in obj"的html数据时,它显示1991为第一,2000为最后。我只是想颠倒我的显示顺序,显示2000为第一,1991为最后,使用前端的极简复杂性,即O(n)。应用orderBy并没有帮助我。我不确定我是否需要自定义过滤器。任何线索都会受到赞赏,因为我不想改变JSON结构。应该是一样的。

欢呼声。

1 个答案:

答案 0 :(得分:2)

获取对象键,然后使用键从对象中获取值。

<强> HTML

<div ng-repeat="key in keys">
    {{obj[key]}}
</div>

<强> CONTROLLER

$scope.obj = {
  '1991': [{
    'year': 1991,
    'month': 'Jan'
  }, {
    'year': 1991,
    'month': 'Feb'
  }],
  '1992': [{
    'year': 1992,
    'month': 'March'
  }, {
    'year': 1992,
    'month': 'Dec'
  }],
  '2000': [{
    'year': 2000,
    'month': 'Jan'
  }]
};

// get object keys and sort them.
$scope.keys = Object.keys($scope.obj).reverse();

<强> JSFIDDLE