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

Вернуться   Форум Flasher.ru > Архив Flasher.ru > Flash > ActionScript

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему  
Старый 28.10.2004, 11:15
Whatsername вне форума Посмотреть профиль Отправить личное сообщение для Whatsername Найти все сообщения от Whatsername
  № 1  
Whatsername

Регистрация: Jul 2003
Адрес: Петербург
Сообщений: 432
По умолчанию arrayName.reverse() ручками

Сейчас перечитываю Колина Мука, получаю массу удовольствия.
Нашел задание сделать метод reverse из подручных материалов. Сделал, посмотрел в старых файлах - один в один с тем, что у меня получилось несколько месяцев назад.
Код:
Array.prototype.turnOut = function() {
	for (var i = 0; i<this.length-1; i++) {
		this.splice(i, 0, this.pop());
	}
};
//
var heap = [1, 2, 3, 4, 5];
heap.turnOut();
trace(heap);
Может быть кто-то захочетт предложить более остроумные варианты?

Старый 29.10.2004, 01:31
Iv вне форума Посмотреть профиль Отправить личное сообщение для Iv Посетить домашнюю страницу Iv Найти все сообщения от Iv
  № 2  
Iv
 
Аватар для Iv

Регистрация: Apr 2001
Адрес: Moscow
Сообщений: 1,475
блистать остроумием и писать реальный код на флэше - разные вещи. иногда предпочтительней производительность.
Код:
var heap = [1, 2, 3, 4, 5, 6];
heap[1000] = "-";
///////////////////
Array.prototype.turnOut = function() {
	for (var i = 0; i<this.length-1; i++) {
		this.splice(i, 0, this.pop());
	}
};
Array.prototype.turn1Out = function() {
	var len = this.length-1;
	var l = len/2, i = 0, s;
	for (var i = 0; i<l; i++) {
		s = this[i];
		this[i] = this[len-i];
		this[len-i] = s;
	}
};
//
var t = getTimer();
heap.turnOut();
trace(getTimer()-t);
trace(heap.join(""));
var t = getTimer();
heap.turn1Out();
trace(getTimer()-t);
trace(heap.join(""));
- я не тестил как следует, но думаю мой вариант до ума довести можно.

Старый 29.10.2004, 14:59
Whatsername вне форума Посмотреть профиль Отправить личное сообщение для Whatsername Найти все сообщения от Whatsername
  № 3  
Whatsername

Регистрация: Jul 2003
Адрес: Петербург
Сообщений: 432
Спасибо, Ив!

Красиво. При таком объеме, действительно, твоя функцияболее чем в 400 раз быстрее моей. Кайфушки!

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

Но меня в первую очередь интересовал подход, а не скорость. Все равно родной reverse , скорее всего, не догонишь... он быстрее твоего метода в 5 раз.

Спасибо большое за решение.
Пью Коку за твое здоровье

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

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

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


 


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


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