Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Angular.js中(key,value)对象的OrderBy基于键反向排列_Javascript_Angularjs - Fatal编程技术网

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

Javascript Angular.js中(key,value)对象的OrderBy基于键反向排列,javascript,angularjs,Javascript,Angularjs,我想使用javascript/Angular.js以相反的顺序显示以下结果。这是一个关联数组,其中键为年份(数字),值为该年份月份的对象数组 var obj = { '1991': [{'year':1991,'month':'Jan'},{'year':1991,'month':'Feb'}], '1992': [{'year':1992,'month':'March'},{'year':1992,'month':'Dec'}], '2000': [{'year':

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

 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'}]
    }
因此,当这基本上使用obj中的
ng repeat=“(key,value)”显示html上的数据时,
将1991显示为第一个,2000显示为最后一个。我只想颠倒我的显示顺序,显示2000年为第一个,1991年为最后一个,在前端使用最简单的复杂性,即O(n)。申请orderBy对我没有帮助。我不确定我是否需要一个自定义过滤器。任何潜在客户都将不胜感激,因为我不想更改JSON结构。应该是一样的


干杯。

获取对象关键点,然后使用关键点从对象获取值

HTML

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

您不能根据关键字对对象属性进行排序将对象转换为对象数组然后进行排序如果必须这样做怎么办?绝对没有解决方案?正如我在上面所建议的,有一些变通方法。您可能需要重新表述obj本身,以获得orderBy:“属性”的好处,您可能需要对其进行格式化,因此今年将是一个属性,您可以使用orderBy:“属性”如何使其更简单?没有第二个obj?
$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();