Bir ruby dizisini elemanlarının ardışık çift dizisine dönüştürmenin en kolay yolu nedir?Ruby dizisini ardışık çiftler dizisine dönüştürme
x = [:a, :b, :c, :d]
Beklenen sonuç:
y #=> [[:a, :b], [:c, :d]]
Bir ruby dizisini elemanlarının ardışık çift dizisine dönüştürmenin en kolay yolu nedir?Ruby dizisini ardışık çiftler dizisine dönüştürme
x = [:a, :b, :c, :d]
Beklenen sonuç:
y #=> [[:a, :b], [:c, :d]]
kullanın Enumerable#each_slice
:
Yani
y = x.each_slice(2).to_a
#=> [[:a, :b], [:c, :d]]
[0, 1, 2, 3, 4, 5].each_slice(2).to_a
#=> [[0, 1], [2, 3], [4, 5]]
Hash[*[:a, :b, :c, :d]].to_a
Zeki, ancak düzeni korumaz. –
Bunu yapar (en azından Ruby 1.9.2dev içinde). –
Büyüleyici! http://www.igvita.com/2009/02/04/ruby-19-internals-ordered-hash/ –
değil! Bu yöntemi bir şekilde özledim. –