通过condition + ruby​​数组将数组元素移动或移位到最后位置

时间:2014-07-05 09:54:23

标签: ruby arrays

我需要按条件将元素移动到最后位置。 对于前者 [1,2,3]并将1放在数组的最后,而不执行不必要的循环。

o/p [2,3,1]对于上面的条件数组将是动态的,并将特定元素放在最后的条件上。

我试过这样:

sd = [1,2,3]
sd.map{|d| sd.last(d) if d ==1 }

但输出为[[3], nil, nil]

1 个答案:

答案 0 :(得分:3)

我们有Array#rotate方法: -

[3] pry(main)> a = [1,2,3]
=> [1, 2, 3]
[4] pry(main)> a.rotate(1)
=> [2, 3, 1]
[5] pry(main)> a.rotate(2)
=> [3, 1, 2]

在您的情况下,您应该将 1 作为参数传递给方法#rotate。但1#rotate方法的默认参数,因此您也可以省略bang version of #rotate也存在。