19

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

IE:[a,b,c,d]

“一些操作”

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

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

4

4 回答 4

50

Array#rotate

[a,b,c,d].rotate(1)
于 2013-06-29T10:51:39.940 回答
4

是的,可以使用Array#shift

a = [1,2,7,4]
a << a.shift
a # => [2, 7, 4, 1]
于 2013-06-29T11:49:15.103 回答
3

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

ary.push(ary.shift)

或通过在多个步骤中拆分/切片阵列来连接某些东西。

以上对于数组的左移很有用。换个方向就是:

ary.unshift(ary.pop)

与上述内容一起,它有时对于在二进制级别模拟位旋转很有用。

于 2013-06-29T15:09:25.350 回答
1
    result=[a,b,c,d]
#first add first char at last in array
    result << result[0]
#remove first character from array
    result.shift 
于 2013-06-29T10:51:12.320 回答