2013-07-18 63 views
0

我需要以指定大小的塊反轉數組。下面是什麼需要做的一個例子:Flip array in chunk

chunk = 2 
arr = [1,2,3,4,5] 

我怎樣才能建設一個塊反轉像這樣的數組:

[2, 1, 4, 3, 5] 

我的代碼:

arr.each_slice(chunk) { |a| p a } 

輸出:

[1,2] 
[3,4] 
[5] 

每個chu如上所示,上面的nks需要被反轉並附加到最​​終的數組中。

+1

@sawa爲什麼編輯然後投票結束? – squiguy

回答

2
arr = [1,2,3,4,5] 
arr.each_slice(2).flat_map(&:reverse) 
# => [2, 1, 4, 3, 5] 
+1

你可以使用'flat_map(&:reverse)'優化' – tadman

+0

@tadman yes..done !!我忘了一會兒那件事。謝謝你提醒我。 –

+0

啊,很酷。我認爲我必須使用「減少」,但似乎過度。 – squiguy