Работа $.each в разных браузерах

nipler
На сайте с 04.07.2008
Offline
93
591

Недавно столкнулся с такой проблемой. Массив вида

[345]=>'value1',

[746]=>'value2',
[24]=>'value3',
[678]=>'value4',

преобразованный в json и обрабатываемый через $.each

$.each(json,function(key,val){

alert(key);
})

в опере и хроме автоматически сортируется по ключу. То есть в лисе key выводится именно в таком порядке как задано в массиве, а опере и хроме выводится по порядку возрастания ключа.

Никто не знает как сделать чтоб не сортировало по ключу?

Быстропост – система автоматической монетизации (http://bystropost.ru/partner/248) Удобный бесплатный инструмент для вебмастера и оптимизатора (http://site-control.ru/)
DiAksID
На сайте с 02.08.2008
Offline
236
#1
nipler:
... Никто не знает как сделать чтоб не сортировало по ключу?

в JS нет ассоциативных массивов, это объекты, отсюда непонятки и траблы с ними.

самое простое решение вашей проблемы - при создании просто поменяйте местами "ключ" и "значение"...

show must go on !!!...
[Удален]
#2

Или, если значения в массиве дублируются, попробуйте преобразовать массив так, чтобы ключи стали строками


['345']=>'value1',
['746']=>'value2',
['24']=>'value3',
['678']=>'value4',
dkameleon
На сайте с 09.12.2005
Offline
386
#3
nipler:
в опере и хроме автоматически сортируется по ключу.

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

Дизайн интерьера (http://balabukha.com/)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий