Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Сортировка JS объектов браузером по умолчанию (https://javascript.ru/forum/misc/24568-sortirovka-js-obektov-brauzerom-po-umolchaniyu.html)

estonets 06.01.2012 12:22

Сортировка JS объектов браузером по умолчанию
 
Доброе время суток. У меня возникла след. проблема. У меня есть массив след. вида:
var arr = [8, 11, 9 5];

Мне нужно из этого массива создать объект след. вида:
var obj = {
   8   : true,
   11 : true,
   9   : true,
   5   : true
}

Но главное чтобы порядок key в объекте был именно такой как в массиве и не изменялся.
Пройтись циклом по массиву и создать объкт проблем нету. Проблема заключается в сл. браузеры Chrome и ие9 сортируют ключи в объекте. То есть в Chrome и ие9 объект Obj приймет сл. вид:
var obj = {
  5: true,
  8: true,
  9: true,
  11: true
}

Отказаться от использования объектов не выход. Если к ключам объекта добавлять например "_5" или "5j" всё равно Chrome и ие9 сортируют ключи. Делать массив объектов выход, да прорядок тогда можно сохранить, но уже написано очень много кода и переписывание многово будет стоит.
Очень буду рад услышать выши комментарии по этому счёту. Буду рад услышать любое ваше мнение или предложения как решить данную проблему.
Большое спасибо.

Kolyaj 06.01.2012 12:26

Хэш по определению является неупорядоченным набором свойств. Поэтому надеяться на какой-либо порядок нельзя в принципе. Даже если в данный момент Firefox сортирует так, как вам надо, завтра он может сортировать по другому.

nerv_ 06.01.2012 12:27

estonets, как вариант добавить к ключам св-ва, по кот. сортировать.

Sober_exe 29.04.2014 17:08

Не знаю, актуально ещё или нет, но на курсах Илья нам обьяснял, что если с сервера придут ключи у которых вначале будет стоять "+" то сортировки происходить не будет


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