Просмотр полной версии : Просмотр ассоциативного массива в обратном порядке
Столкнулся с такой проблемой. Создаю массив
arr = new Array();
arr["arrname"] = "3";
arr["arrvalue"] = "6";
arr["arrcnt"] = "9";
for(var key in arr) {
trace(arr[key]);
}
Как результат, оно выводит
9
6
3
Подскажите, пожалуйста, каким образом мона изменить, чтобы выводилось в таком же порядке, в котором и создается:
3
6
9
Спасибо.
DeliMIter
09.08.2004, 15:14
Создай массив, запихни туда значения, реверсни.
1
arr = new Array();
name = new Array("arrname", "arrvalue", "arrcnt");
arr["arrname"] = "3";
arr["arrvalue"] = "6";
arr["arrcnt"] = "9";
for (i=0; i<name.length; i++) {
trace(arr[name[i]]);
}
2
arr = new Array();
arr["arrcnt"] = "9";
arr["arrvalue"] = "6";
arr["arrname"] = "3";
for (var key in arr) {
trace(arr[key]);
}
Nox Noctis
09.08.2004, 15:16
если у тебя в качестве либо ключа либо значения в массиве идут целые числа - то гораздо удобнее использовать обыкновенный массив. один вызов Array.reverse решает проблему.
а for .. in всегда перебирает элементы в порядке обратном том в котором они были созданы. т.е. самый новый первым, потом тот который был создан пере ним и т п.
Nox Noctis
09.08.2004, 15:17
да и вообще. если важен порядок элементов - то for .. in использовать не особо грамотно...
зы: а первый вариант opex'а совсем неплох.
только это всё равно лишний наворот здесь.
Яфно. Значит никак нельзя.
Да думал я сделать подобно тому, как показал выше уважаемый Орех. Но как-то это подобно чесанию левого уха правой рукой через затылок.
Ладно. Прийдется чесать :D .
Всем большое спасибо.
Оригинал написал(а) Lego
Но как-то это подобно чесанию левого уха правой рукой через затылок.
Кстати очень удобно =)
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.