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

19

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

例如: [a,b,c,d]

"某种操作"

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

这个“某种操作”应该是什么呢?

4个回答

51

1
Ruby多么优雅! - leslie.zhang
1
或者如果你想将最后一个项目移动到数组的前面:[a,b,c,d].rotate(-1) - Jason R

5
是的,可以使用 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)

以上所述的内容,以及这里提到的偶尔有用的位操作模拟,对于二进制级别的位操作模拟非常有帮助。


嗯,这是数组的左旋转,而不是移位。 - the Tin Man

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接