【发布时间】:2013-06-29 10:42:13
【问题描述】:
将数组的第一个元素移动到同一数组的末尾的最佳方法是什么?
即:[a,b,c,d]
“一些操作”
结果:[b,c,d,a]
这个“一些操作”应该是什么?
【问题讨论】:
将数组的第一个元素移动到同一数组的末尾的最佳方法是什么?
即:[a,b,c,d]
“一些操作”
结果:[b,c,d,a]
这个“一些操作”应该是什么?
【问题讨论】:
[a,b,c,d].rotate(1)
【讨论】:
[a,b,c,d].rotate(-1)
是的,可以使用Array#shift
a = [1,2,7,4]
a << a.shift
a # => [2, 7, 4, 1]
【讨论】:
正如@sawa 所说,使用rotate。在其他/较旧的语言中,我们会这样做:
ary.push(ary.shift)
或通过在多个步骤中拆分/切片数组来连接一些东西。
以上对于数组的左移很有用。换个方向是:
ary.unshift(ary.pop)
与上述内容一起偶尔有用,用于在二进制级别模拟位旋转。
【讨论】:
result=[a,b,c,d]
#first add first char at last in array
result << result[0]
#remove first character from array
result.shift
【讨论】: