![]() |
|
||||||||||
|
|||||||
|
|
« Предыдущая тема | Следующая тема » |
| Опции темы | Опции просмотра |
|
![]() |
![]() |
|
|
|
|||||
|
Регистрация: Sep 2006
Сообщений: 53
|
Господа флешеры прокомментируйте пож-ста следующий код:
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, !!!непонятно каким образом идет перечисление!!!
Последний раз редактировалось iNils; 29.03.2008 в 12:28. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
for in так работает... Перечисление идет от поля созданного последним, к полю созданному первым, т.е. с конца в начало.
Последний раз редактировалось udaaff; 29.03.2008 в 12:35. |
|
|||||
|
Негуру
администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,884
Записей в блоге: 7
|
for in дает элементы согласно обратному порядку их добавления (FILO). А сортировка происходит методом сравнения значения одного элемента с другим, поэтому данные поступают в разнобой и на порядок влияют все элементы и их положения до сортировки и после.
Для вывода массива согласно индексу элемента, надо пользоваться обычным for |
|
|||||
|
Регистрация: Sep 2006
Сообщений: 53
|
спасибо за исчерпывающий ответ
|
![]() |
![]() |
Часовой пояс GMT +4, время: 16:50. |
|
|
« Предыдущая тема | Следующая тема » |
|
|