我需要按条件将元素移动到最后位置。
对于前者
[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]
答案 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
也存在。