我想使用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结构。应该是一样的。
欢呼声。
答案 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 强>