Как перенести первый элемент в конец массива Каков наилучший способ перемещения первого элемента массива до конца этого же массива? т.е.: [a,b,c,d] "Некоторая операция" результат: [b,c,d,a] Что должна быть эта "Некоторая операция"? Ответ 1 Существует Array#rotate: [a,b,c,d].rotate(1) Ответ 2 Да возможно использование Array#shift a = [1,2,7,4] a << a.shift a # => [2, 7, 4, 1] Ответ 3 Как говорит @sawa, используйте rotate. На других/более старых языках мы будем делать что-то вроде: ary.push(ary.shift) или подключить что-то, разбив/нарезая массив несколькими шагами. Вышеприведенное полезно для сдвига по левому краю массива. Обратное направление: ary.unshift(ary.pop) что иногда полезно, наряду с вышесказанным, для имитации бит-twiddling на двоичном уровне. Ответ 4 result=[a,b,c,d] #first add first char at last in array result << result[0] #remove first character from array result.shift
Ответ 3 Как говорит @sawa, используйте rotate. На других/более старых языках мы будем делать что-то вроде: ary.push(ary.shift) или подключить что-то, разбив/нарезая массив несколькими шагами. Вышеприведенное полезно для сдвига по левому краю массива. Обратное направление: ary.unshift(ary.pop) что иногда полезно, наряду с вышесказанным, для имитации бит-twiddling на двоичном уровне.
Ответ 4 result=[a,b,c,d] #first add first char at last in array result << result[0] #remove first character from array result.shift