Добрый день,
Допустим имеется следующий JSON: a = {"10173":{},"10178":{},"10180":{},"10177":{}};
При использовании for(var id in a)
{
alert(id);
}
в ИЕ 9 выведет ИДшки в отсортированном порядке
Вопрос: как от этого избавиться(ведь в нормальных браузерах и даже IE7 всё нормально работает, а именно порядок сохраняется)?
Это не массив (список), а хэш (словарь). Следовательно, порядок ключей не гарантируется. Даже если в некоторых реализациях порядок соблюдается, это не показатель.
Так что, если порядок критичен, придется сортировать.
там просто было всё дело в том, что ajax-ом передавался массивчик с сервера именно в таком виде, так как много где используется особо не хотелось менять структуру. Я просто решил дополнительно передавать сортировки.
Я решал эту проблему с сортировкой хеша в IE тем, что ставил впереди ключа букву (можно любой другой символ). Тогда не сортируется. Что интересно, проблема только с IE9, Оперой и Хромом. Safari и FF — нормально.