Ответ 1
Используйте Enumerable#each_slice
:
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]]
Что является самым простым способом преобразования массива ruby в массив последовательных пар его элементов?
Я имею в виду:
x = [:a, :b, :c, :d]
Ожидаемый результат:
y #=> [[:a, :b], [:c, :d]]
Используйте Enumerable#each_slice
:
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