Как перенести первый элемент в конец массива

Каков наилучший способ перемещения первого элемента массива до конца этого же массива?

т.е.: [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