slice_beforeをindexを付加して回したい
Q&A
Closed
numbers = %w[1 2 3 5 8 9 14 16 45].map(&:to_i)
があったとして[1, 2, 3], [5] [8] [9] [14] [16] [45]
みたいにしたい時に、indexを付け1つ前の要素と比較しながらslice_beforeしたかった。
numbers = %w[1 2 3 5 8 9 14 16 45].map(&:to_i)
# => [1, 2, 3], [5] [8] [9] [14] [16] [45]
# こういう風には出来ない
# numbers.slice_before.with_index{|number, index| ... }
# ArgumentError: wrong number of arguments (given 0, expected 1)
# 苦肉の策で今はこうしている
numbers.zip(0...numbers.size).slice_before{|number, index| ... }
slice_beforeはslice_before(pattern)
のように引数を取れるパターンもあるのでArgumentErrorが起きると思うが、with_index
はこういう場合はやはり付けられないでしょうか?
0