Asıl soru "Ruby'de dizilerin nasıl birleştirileceği" sorusudur. Doğal olarak cevap kullanmak concat
veya+
hemen hemen her cevapta belirtildiği gibidir.
Sorunun doğal bir uzantısı, “2B dizilerin Ruby'de satır bazında birleştirilmesinin nasıl gerçekleştirileceği” olacaktır. Ne zaman "yakut bitiştirmek matrisler" googled, bu SO soru en iyi sonuç oldu bu yüzden ben burada (sorulmamış ama ilgili) soruya gelecek kuşak için cevap bırakacağımı düşündüm.
Bazı uygulamalarda, iki 2D diziyi satır bazında "birleştirmek" isteyebilirsiniz. Gibi bir şey,
[[a, b], | [[x], [[a, b, x],
[c, d]] | [y]] => [c, d, y]]
Bu bir matrisi "artırmak" gibidir. Örneğin, bu tekniği bir grup küçük matrisin grafiğini temsil eden tek bir bitişiklik matrisi oluşturmak için kullandım. Bu teknik olmasaydı, bileşenler üzerinde hataya eğilimli ya da düşünmek için sinir bozucu olabilecek bir şekilde yinelemeliydim. each_with_index
Mesela bir yapmak zorunda kalabilirdim . Bunun yerine fermuar ve düzleştirmeyi aşağıdaki gibi birleştirdim ,
# given two multi-dimensional arrays that you want to concatenate row-wise
m1 = [[:a, :b], [:c, :d]]
m2 = [[:x], [:y]]
m1m2 = m1.zip(m2).map(&:flatten)
# => [[:a, :b, :x], [:c, :d, :y]]