Показать сообщение отдельно
Старый 15.12.2012, 17:59
wvxvw вне форума Посмотреть профиль Отправить личное сообщение для wvxvw Найти все сообщения от wvxvw
  № 6  
Ответить с цитированием
wvxvw
Modus ponens
 
Аватар для wvxvw

модератор форума
Регистрация: Jul 2006
Адрес: #1=(list #1#)
Сообщений: 8,049
Записей в блоге: 38
Только вот фишка в том, что splice не смотря на то, что должна модифицировать массив, в этом случае, выделит память под массив по-новой, иногда это не принципилаьно, но иногда лучше так не делать (если массив большой). Аналогично динамическое наращивание массива скорее всего приведет к выделению памяти и копированию массива. Так что, если массив очень большой, а время не особо критично, то ИМО, лучше просто сместить все оставшиеся элементы на единичку влево, а последний заменить тем, который нужно переставить.

Код AS3:
package
{
    import flash.display.Sprite;
 
    public class RotateShiftExample extends Sprite
    {
        public function RotateShiftExample()
        {
            super();
            // 1,2,4,5,3
            trace(rotateShift([1, 2, 3, 4, 5], 2));
        }
 
        private static function rotateShift(
            array:Array, index:int):Array
        {
            var limit:int = array.length - 1;
            var element:Object = array[index];
            while (index < limit)
                array[index] = array[++index];
            array[index] = element;
            return array;
        }
    }
}
__________________
Hell is the possibility of sanity


Последний раз редактировалось wvxvw; 15.12.2012 в 18:11.