2 つの配列を正確に入れ替えずにインターリーブしたいと思います。たとえば、次のようになります。
a = [1,2,3,4,5,6,7,8,9]
b = ['a','b','c']
f = [1,2,'a',3,4,'b',5,6,'c',7,8,9]
出力として受け取りたいです。b
の 2 つの要素ごとに 1 つの要素が必要a
です。
解決策は次のようになります。
a = [1,2,3,4,5,6,7,8,9]
b = ['a','b','c']
even, odd = a.partition.each_with_index{ |_, i| i.even? }
res = even.zip(odd,b)
res = res.flatten.reject(&:blank?)
#=> [1, 2, "a", 3, 4, "b", 5, 6, "c", 7, 8, 9]
しかし、私はこのソリューションに興奮していません。何か案は?