Форум 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=110217)

hotdes 29.03.2008 11:37

перечисление членов массива после сортировки
 
Господа флешеры прокомментируйте пож-ста следующий код:
Код:

arr = [5,6,9,7,3,6,8,2]; // исходный массив
var str:String="";
for (i in arr){
        str=str+arr[i]+",";
}
trace(str); // 2,8,6,3,7,9,6,5, - перечисление от конца массива к его началу
arr.sort(Array.NUMERIC);
trace(arr); // 2,3,5,6,6,7,8,9 - отсортированный массив
str="";
for (i in arr){
        str=str+arr[i]+",";
}
trace(str); // 9,7,6,6,5,3,2,8,  !!!непонятно каким образом идет перечисление!!!


udaaff 29.03.2008 12:33

for in так работает... Перечисление идет от поля созданного последним, к полю созданному первым, т.е. с конца в начало.

iNils 29.03.2008 12:40

for in дает элементы согласно обратному порядку их добавления (FILO). А сортировка происходит методом сравнения значения одного элемента с другим, поэтому данные поступают в разнобой и на порядок влияют все элементы и их положения до сортировки и после.
Для вывода массива согласно индексу элемента, надо пользоваться обычным for

hotdes 29.03.2008 13:48

спасибо за исчерпывающий ответ


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

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