![]() |
|
||||||||||
|
|||||
|
Banned
[+1 08.05.08]
[+4 14.04.08] [+1.3 02.05.08] Регистрация: Oct 2006
Адрес: кагбэ Киеф!!1
Сообщений: 1,473
|
var rightArray : Array = new Array();
for(var i : Number = 0; i<5; i++) {
rightArray.push('omg this\'s horrible : ' + i);
}
rightArray.reverse();
for(var j : String in rightArray) {
trace(rightArray[j]);
}
Но почему-то выводит 1, 3, 0, 4, 2 Кто что думает по этому поводу?? Получается метод reverse() класса Array переиндусен ![]() UPD: Проверил на 3м языке, все показывает правильно. Во втором AS с этим методом баг. Точнее его итерация с перебором массива через for(... in ...) Последний раз редактировалось Mr. Fixit; 14.04.2008 в 07:51. |
|
|||||
|
...
модератор форума
Регистрация: Sep 2006
Адрес: Minsk
Сообщений: 4,286
|
Цитата:
Видимо, reverse() при переформировании массива, добавляет элементы в порядке: 2, 4, 0, 3, 1, и, соответсвенно, for in выводит 1, 3, 0, 4, 2. Последний раз редактировалось udaaff; 14.04.2008 в 08:30. |
|
|||||
|
Полагаться на правильность вывода for in плохо, лучше обычным for
__________________
"We Are The Champions My Friends!" Queen Последний раз редактировалось CorC; 14.04.2008 в 10:21. |
|
|||||
|
Et cetera
Регистрация: Sep 2002
Сообщений: 30,787
|
for in выводит переменные в порядке добавления к объекту (примерно так). Использовать for … in для перебора элементов массива в порядке возрастания индексов нельзя.
|
![]() |
![]() |
Часовой пояс GMT +4, время: 11:08. |
|
|
« Предыдущая тема | Следующая тема » |
|
|