2015-01-15 5 views
1

У меня есть массив объектов JSON следующимИтерация через массив JSON объектов

{ 
    "01/15/2015_1": [ 
     [ 
      { 
       "sequenceType": -1, 
       "delflag": -1 
      }, 
      { 
       "sequenceType": -1, 
       "delflag": -1 
      } 
     ] 
    ], 
    "01/15/2015_2": [ 
     [ 
      { 
       "sequenceType": -1, 
       "delflag": -1 
      }, 
      { 
       "sequenceType": -1, 
       "delflag": -1 
      } 
     ] 
    ] 
} 

Повторяя его с JQuery-х каждый() Я получаю объект в следующем порядке:

1."01/15/2015_1" 
2."01/15/2015_2" 

Но я хочу это в обратном направлении() говорят следующие:

1."01/15/2015_2" 
2."01/15/2015_1" 

Нужна помощь ..

Возможно ли с помощью ng-repeat?

+0

возможно дубликат [JQuery: Сортировать результаты по $ .each] (http://stackoverflow.com/questions/8886494/jquery-sort-results-of-each) –

+2

На самом деле вы выполняете итерации свойств объекта, а не массива. ECMAscript фактически не определяет порядок для свойств. http://stackoverflow.com/questions/5525795/does-javascript-guarantee-object-property-order – ikettu

ответ

7

Объект не имеет определенного порядка, так что вы не можете убедиться, что это хорошо работает в любом браузере.

Вы должны захватить ключи, Object.keys(), сортировать их и перебирать через ключ.

например:

var obj = { 
    "01/15/2015_1": [ 
     "example1" 
    ], 
    "01/15/2015_3": [ 
     "example3" 
    ], 
    "01/15/2015_2": [ 
     "example2" 
    ] 
} 
var keys = Object.keys(obj).sort(); 
var klen = keys.length; 
for(var idx = 0; idx < klen; idx++){ 
    console.log(obj[ keys[ idx ] ]) 
} 
Смежные вопросы