Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Пройтись циклом по объекту с сохранением порядка ключей (https://javascript.ru/forum/misc/55289-projjtis-ciklom-po-obektu-s-sokhraneniem-poryadka-klyuchejj.html)

Котзилла 21.04.2015 19:39

Пройтись циклом по объекту с сохранением порядка ключей
 
Всем доброго времени суток.

Задача с виду простая, но бьюсь над ней с самого утра.

Имеется json-объект, вида:
var data = {
    "1":  {id: 1, name: "Объект 1"},
    "12": {id: 12, name: "Объект 12"},
    "7":  {id: 7, name: "Объект 7"},
    "10": {id: 10, name: "Объект 10"},
    "2":  {id: 2, name: "Объект 2"}
};

Нужно выполнить его перечисление в цикле, с сохранением исходного порядка ключей. Пробовал и стандартные циклы JS, и методы из jQuery, ключи все равно идут в порядке возрастания :-/

$.each(data, function(key, value){
    alert(value.id);
    // Ожидается серия алертов: 1, 12, 7, 10, 2
    // а получаем подряд: 1, 2, 7, 10, 12
});

Буду очень благодарен за ваши подсказки, уважаемые гуру JS :)

Safort 21.04.2015 19:51

Только недавно была подобная тема)
http://javascript.ru/forum/css-html/...-v-obekte.html

рони 21.04.2015 20:07

Котзилла,
если порядок не хранить отдельно вариантов нет, но кто-то считает иначе http://javascript.ru/forum/css-html/...-v-obekte.html

Котзилла 21.04.2015 20:33

Прошу прощения, не заметил той темы)
Значит, наверное, лучшим вариантом будет переделать выдачу исходных данных, чтобы не городить костыли. Просто таким образом было удобно бы работать с объектами, когда ключ - это его ID.


Часовой пояс GMT +3, время: 11:59.