如何将第一个元素移动到数组的末尾

时间:2013-06-29 10:42:13

标签: ruby arrays

将数组的第一个元素移动到同一个数组的末尾的最佳方法是什么?

ie:[a,b,c,d]

“一些操作”

结果:[b,c,d,a]

这个“一些操作”应该是什么?

4 个答案:

答案 0 :(得分:37)

Array#rotate

[a,b,c,d].rotate(1)

答案 1 :(得分:4)

是的,可以使用Array#shift

a = [1,2,7,4]
a << a.shift
a # => [2, 7, 4, 1]

答案 2 :(得分:3)

正如@sawa所说,使用rotate。在其他/较旧的语言中,我们会做类似的事情:

ary.push(ary.shift)

或通过分多步拆分/切片来连接某些东西。

以上对于数组的左移是有用的。扭转方向是:

ary.unshift(ary.pop)

对于模拟二进制级别的位错误,偶尔也是有用的。

答案 3 :(得分:1)

    result=[a,b,c,d]
#first add first char at last in array
    result << result[0]
#remove first character from array
    result.shift