按升序Angularjs / Javascript对对象中的日期属性进行排序

时间:2015-03-17 08:57:18

标签: javascript angularjs

当我在console.log details变量时,我得到以下结果:

details:{ 1:{ 2015-2-10 : 0 2015-2-11 : 0 2015-2-12 : 0 2015-2-13 : 0 2015-2-14 : 0 2015-2-15 : 0 2015-2-16 : 0 2015-2-17 : 0 2015-2-18 : 0 2015-2-19 : 0 2015-2-2 : 0 2015-2-20 : 0 2015-2-21 : 0 2015-2-22 : 0 2015-2-23 : 0 2015-2-24 : 0 2015-2-25 : 0 2015-2-26 : 0 2015-2-27 : 1 2015-2-28 : 1 2015-2-3 : 0 2015-2-4 : 0 2015-2-5 : 0 2015-2-6 : 0 2015-2-7 : 0 2015-2-8 : 0 2015-2-9 : 0 2015-3-1 : 0 } }

我想要的是按升序显示日期。因此输出将变为:

details:{ 1:{ 2015-2-2 : 0 2015-2-3 : 0 2015-2-4 : 0 2015-2-5 : 0 2015-2-6 : 0 2015-2-7 : 0 2015-2-8 : 0 2015-2-9 : 0 2015-2-10 : 0 2015-2-11 : 0 2015-2-12 : 0 2015-2-13 : 0 2015-2-14 : 0 2015-2-15 : 0 2015-2-16 : 0 2015-2-17 : 0 2015-2-18 : 0 2015-2-19 : 0 2015-2-20 : 0 2015-2-21 : 0 2015-2-22 : 0 2015-2-23 : 0 2015-2-24 : 0 2015-2-25 : 0 2015-2-26 : 0 2015-2-27 : 1 2015-2-28 : 1 2015-3-1 : 0 } }

我的问题:是否可以这样做?

我的plunker是http://plnkr.co/edit/dQO3D1Omc0o7ZH9TfeUZ?p=preview 提前谢谢!

1 个答案:

答案 0 :(得分:1)

  

我的问题:是否可以这样做?

没有。您引用的结构是一个对象,其属性名称为"2015-02-28"。 JavaScript 中的对象根本没有对其属性的订单。要获得订单,您必须(现在)拥有一个数组。 ES6将引入Map个对象,这些对象是按键的插入顺序排序的映射。但ES5没有那些。

这并不意味着您无法以任何您想要的顺序访问这些属性。您可以通过Object.keys获取一系列属性名称,然后您可以根据需要对数组进行排序。