Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Поиск рулит! Сообщения за день Все разделы прочитаны
 

Вернуться   Форум Flasher.ru > Flash > ActionScript 1.0/2.0

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 08.03.2009, 23:37
DarkLight вне форума Посмотреть профиль Отправить личное сообщение для DarkLight Посетить домашнюю страницу DarkLight Найти все сообщения от DarkLight
  № 11  
Ответить с цитированием
DarkLight
ветеран форума
 
Аватар для DarkLight

Регистрация: May 2006
Адрес: Москва
Сообщений: 2,978
Отправить сообщение для DarkLight с помощью ICQ Отправить сообщение для DarkLight с помощью Skype™
Из хелпа
Цитата:
It iterates over the properties in reverse index order.
А порядок следования свойств в данном случае - порядок их добавления
__________________
4am is time to rock

Старый 09.03.2009, 01:15
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 12  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Можно и от меньшего к большему. Для этого надо сначала применить к массиву метод reverse.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 09.03.2009, 02:44
Dr.OH вне форума Посмотреть профиль Отправить личное сообщение для Dr.OH Найти все сообщения от Dr.OH
  № 13  
Ответить с цитированием
Dr.OH

Регистрация: Aug 2003
Сообщений: 299
Отправить сообщение для Dr.OH с помощью ICQ
да, но все равно это получается перебор методом "пальцем в небо", т.е. неизвестно какой элемент будет первым.

Старый 09.03.2009, 03:56
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 14  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Если не хотите читать то, что вам пишут, это ваши личные проблемы.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 09.03.2009, 10:26
Dr.OH вне форума Посмотреть профиль Отправить личное сообщение для Dr.OH Найти все сообщения от Dr.OH
  № 15  
Ответить с цитированием
Dr.OH

Регистрация: Aug 2003
Сообщений: 299
Отправить сообщение для Dr.OH с помощью ICQ
iNils, это вы к чему? Вы сказали, что, если применить к массиву метод reverse, то элементы в нем поменяют свою последовательность. Но при этом по прежнему неизвестно в какой последовательности они будут перечислены, т.е. reverse не дает гарантии, что при использовании for перечисление будет идти с 0 ли с конечного элемента. Более того, при применении метода reverse элементы перечисляются в произвольном поряде, т.е.
Код AS1/AS2:
var arr:Array = new Array();
arr.push(1);
arr.push(2);
arr.push(3);
arr.reverse();
for (i in arr) trace(i+": "+arr[i]);
// получаем
// 2: 1
// 0: 3
// 1: 2
...может я где-то ошибся?
Так и что я не хочу читать?

Старый 09.03.2009, 12:38
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 16  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Стоп. Вы меня запутали. Зачем вам вообще for in для массива?
Код AS1/AS2:
var arr:Array = new Array ();
arr.push (0);
arr.push (1);
arr.push (2);
arr.push (3);
arr.push (4);
arr.push (5);
arr.reverse ();
arr = arr.concat ();
trace (arr);
for (i in arr) {
	trace (i + ": " + arr[i]);
}
__________________
(и)Нильс.ru | Плагины для FlashDevelop


Последний раз редактировалось iNils; 09.03.2009 в 12:49.
Старый 09.03.2009, 20:57
Dr.OH вне форума Посмотреть профиль Отправить личное сообщение для Dr.OH Найти все сообщения от Dr.OH
  № 17  
Ответить с цитированием
Dr.OH

Регистрация: Aug 2003
Сообщений: 299
Отправить сообщение для Dr.OH с помощью ICQ
именно, вот мне и было интересно, можно ли сделать for in без всяких ухищрений типа concat() и почему for in так странно и непонятно работает.
Большое спасибо.

Старый 09.03.2009, 21:12
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 18  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Почему непонятно? DarkLight выше процитировал хелп о том, что for in работает как FILO (first in - last out). А сортировка и реверс, это ведь не единая операция, а набор действий: перебора, сравнения, удаления и добавления элементов, что опять же дает FILO.
Если внимательно посмотреть, то можно увидеть закономерность. Для четного числа берутся два центральных элемента, потом следующие от центра и тд. Для нечетного тоже самое, только центральный элемент идет последним.
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Старый 09.03.2009, 21:55
Dr.OH вне форума Посмотреть профиль Отправить личное сообщение для Dr.OH Найти все сообщения от Dr.OH
  № 19  
Ответить с цитированием
Dr.OH

Регистрация: Aug 2003
Сообщений: 299
Отправить сообщение для Dr.OH с помощью ICQ
да, я абсолютно согласен, что это все логично, но только не для массива. FILO абсолютно не предполагает таких операций, как shift и unshift. В данном случае логично предположить, что массив должен работать как очередь с нормальной вставкой элементов в начало и конец очереди. Т.е. вне зависимости от того, в начало мы добавили элемент или в конец, перечисление всегда должно идти в одном и том же направлении. что это за перечисление с конца в начало?
И не совсем понимаю, что значит "можно увидеть закономерность". если я добавил элементы в порядке 1, 2, 3, то reverse должен дать 3, 2, 1, а никак не 2, 1, 3 или что-нибудь типа такого. Вне зависимости от того, при помощи какого метода эти элементы были добавлены.
Надеюсь в AS3 это все реализовано значительно лучше.

Добавлено через 39 секунд
Прошу прощения, наверное мое последнее сообщение. это уже флуд.

Старый 10.03.2009, 00:41
iNils вне форума Посмотреть профиль Отправить личное сообщение для iNils Посетить домашнюю страницу iNils Найти все сообщения от iNils
  № 20  
Ответить с цитированием
iNils
Негуру
 
Аватар для iNils

администратор
Регистрация: Jan 2000
Адрес: Кёнигсберг in Moscow
Сообщений: 21,879
Записей в блоге: 7
Цитата:
FILO абсолютно не предполагает таких операций, как shift и unshift. В данном случае логично предположить, что массив должен работать как очередь с нормальной вставкой элементов в начало и конец очереди.
for..in работает с перечисляемыми свойствами любых объектов. В том числе и для класса Array, то есть, когда вы пользуетесь for..in, элементы массива воспринимаются как свойства (см. Колина Мука в "ActionScript для Flash MX", стр. 299), а не как непосредственно сами элементы. Это ключевой момент.

Цитата:
если я добавил элементы в порядке 1, 2, 3, то reverse должен дать 3, 2, 1, а никак не 2, 1, 3 или что-нибудь типа такого.
А так и есть, reverse - это метод работающий с элементами массива, и он свою работу выполняет - меняет местами элементы относительно их индексов. А вы требуете, чтобы он работал также и со свойствами, а с какой стати?
__________________
(и)Нильс.ru | Плагины для FlashDevelop

Создать новую тему Ответ Часовой пояс GMT +4, время: 13:44.
Быстрый переход
  « Предыдущая тема | Следующая тема »  
Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


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


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