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

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

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

Регистрация: Jul 2011
Сообщений: 249
Отправить сообщение для mihael_p с помощью Skype™
По умолчанию Массив. Как поменять элементы местами?

Подскажите пожалуйста, как в массиве поменять местами элементы? Допустим из массива (1,2,3,4,5) получить массив (1,5,3,4,2)?
__________________
Не стыдно спросить, стыдно не знать !

Старый 02.05.2013, 14:51
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 2  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Задачу на дом задали ?

Проходишь по своему массиву циклом и каждый элемент по порядку меняешь местами со случайным другим элементом. В конце у тебя получиться массив со случайно расположенными элементами.

Получение случайного индекса для замены:
Код AS3:
int(Math.random()*array.length);
__________________
Дети не должны знать о своих родителях

Старый 02.05.2013, 14:52
bav вне форума Посмотреть профиль Отправить личное сообщение для bav Найти все сообщения от bav
  № 3  
Ответить с цитированием
bav
 
Аватар для bav

Регистрация: Oct 2010
Сообщений: 1,049
Отправить сообщение для bav с помощью ICQ
Есть готовое решение. Tails, насколько я понял, тут нужно поменять местами элементы с индексами 1 и 4.
Код AS3:
var myArray:Array = ["flash", "flex", "html", "dhtml", "javascript"];
Array.prototype.swap = function(fromIndex:int, toIndex:int):void {
  var temp:* = this[toIndex];
  this[toIndex] = this[fromIndex];
  this[fromIndex] = temp;
}
 
//swaping first and second index of a array
myArray.swap(0,1);
 
for (var i:Number = 0; i < myArray.length; i++) {
  trace(myArray[i]);
}

Старый 02.05.2013, 15:06
mihael_p вне форума Посмотреть профиль Отправить личное сообщение для mihael_p Посетить домашнюю страницу mihael_p Найти все сообщения от mihael_p
  № 4  
Ответить с цитированием
mihael_p

Регистрация: Jul 2011
Сообщений: 249
Отправить сообщение для mihael_p с помощью Skype™
bav, спасибо огромное - то, что нужно!
__________________
Не стыдно спросить, стыдно не знать !

Старый 03.05.2013, 18:48
Dip52 вне форума Посмотреть профиль Отправить личное сообщение для Dip52 Найти все сообщения от Dip52
  № 5  
Ответить с цитированием
Dip52

Регистрация: Aug 2012
Сообщений: 297
Цитата:
Сообщение от Tails Посмотреть сообщение
Задачу на дом задали ?

Проходишь по своему массиву циклом и каждый элемент по порядку меняешь местами со случайным другим элементом. В конце у тебя получиться массив со случайно расположенными элементами.

Получение случайного индекса для замены:
Код AS3:
int(Math.random()*array.length);
Плохой метод: если длина массива равна 10, следовательно индекс у последнего элемента будет равен 9. При получение элемента с 10 индексом...

Старый 03.05.2013, 19:03
Tails вне форума Посмотреть профиль Отправить личное сообщение для Tails Найти все сообщения от Tails
  № 6  
Ответить с цитированием
Tails
 
Аватар для Tails

блогер
Регистрация: Dec 2008
Адрес: г. Чебоксары
Сообщений: 2,259
Записей в блоге: 6
Dip52,
Метод Math.random() возвращает число от 0 до 0.9999999, Еденицу он не вернёт. Следовательно - результатом всегда будет индекс не более length-1.

Код AS3:
var arrayLength:uint = 10;
for (var i:uint = 0; i<15; i++){
	trace('random index: ' + int(Math.random() * arrayLength));
}
Код:
random index: 6
random index: 8
random index: 0
random index: 3
random index: 0
random index: 3
random index: 4
random index: 9
random index: 7
random index: 5
random index: 9
random index: 8
random index: 8
random index: 6
random index: 0
__________________
Дети не должны знать о своих родителях

Старый 03.05.2013, 19:06
Sync вне форума Посмотреть профиль Отправить личное сообщение для Sync Найти все сообщения от Sync
  № 7  
Ответить с цитированием
Sync
 
Аватар для Sync

Регистрация: Feb 2013
Сообщений: 176
если длина массива 10, то последний индекс - 9.

Старый 28.12.2014, 23:51
PsychoTech вне форума Посмотреть профиль Отправить личное сообщение для PsychoTech Найти все сообщения от PsychoTech
  № 8  
Ответить с цитированием
PsychoTech
 
Аватар для PsychoTech

Регистрация: Aug 2014
Адрес: Где-то на поверхности планеты, какой хз
Сообщений: 113
если в друг кому понадобиться крутить элементы вот код. я его лично использую для контроля вращения нескольких элементов вокруг общей точки чтобы они перекрывали друг друга в нужном порядке.
Если немного дополнить код то можно получить ответ и на вопрос темы, не нагруженный сложностью для прочтения. ИМХО
Код AS3:
var massive: array = [1, 2, 3, 4, 5];
massive.push(massive.shift()); // [2, 3, 4, 5, 1]

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

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

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


 


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


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