Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   ActionScript 1.0/2.0 (http://www.flasher.ru/forum/forumdisplay.php?f=93)
-   -   Сортировка Ассоциативного Массива (http://www.flasher.ru/forum/showthread.php?t=96371)

OracleN 29.05.2007 18:12

Сортировка Ассоциативного Массива
 
Госпрода, есть вопрос следующего плана.

почему написав

Код:

var tmp_arr = [];
      tmp_arr['USA'] = 3214;
      tmp_arr['USSR'] = 'Hello';
      tmp_arr['my'] = '231';

Вы не получите туже последовательность - USA, USSR...
когда вы делаете

Код:

for (var x in tmp_arr) {

}


iNils 29.05.2007 18:56

Потому, что for in работает по принципу FILO (First In Last Out).

OracleN 29.05.2007 19:09

Цитата:

Сообщение от iNils
Потому, что for in работает по принципу FILO (First In Last Out).

А есть ли тогда какой нить вариант?

iNils 29.05.2007 19:20

Код:

function reverse2 (arrayIn:Array) {
        var arrayOut:Array = new Array ();
        for (var arg in arrayIn) {
                arrayOut[arg] = arrayIn[arg];
        }
        return arrayOut;
}

var tmp_arr:Array = [];
tmp_arr['USA'] = 3214;
tmp_arr['USSR'] = 'Hello';
tmp_arr['my'] = '231';
tmp_arr['z'] = 3214;
tmp_arr = reverse2 (tmp_arr);
for (var x in tmp_arr) {
        trace (x);
}
trace ("============")
tmp_arr = reverse2 (tmp_arr);
for (var x in tmp_arr) {
        trace (x);
}


OracleN 29.05.2007 19:38

Цитата:

Сообщение от iNils
Код:

function reverse2 (arrayIn:Array) {
        var arrayOut:Array = new Array ();
        for (var arg in arrayIn) {
                arrayOut[arg] = arrayIn[arg];
        }
        return arrayOut;
}

var tmp_arr:Array = [];
tmp_arr['USA'] = 3214;
tmp_arr['USSR'] = 'Hello';
tmp_arr['my'] = '231';
tmp_arr['z'] = 3214;
tmp_arr = reverse2 (tmp_arr);
for (var x in tmp_arr) {
        trace (x);
}
trace ("============")
tmp_arr = reverse2 (tmp_arr);
for (var x in tmp_arr) {
        trace (x);
}


Гениально, хотя честно я так раньше делал, но не был уверен что это нормалный подход, и порядок не поменяется.

Спасибо.

И вообще, могу я быть уверен, что порядок не поломается или по старинке надо 1,2,3,..


Часовой пояс GMT +4, время: 03:41.

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.