erschachteln von Arrays unterschiedlicher Länge in Ru
Wenn ich eine Reihe von Arrays in Ruby verschachteln möchte und jedes Array dieselbe Länge hat, können wir dies folgendermaßen tun:
a.zip(b).zip(c).flatten
Wie können wir dieses Problem jedoch lösen, wenn die Arrays unterschiedliche Größen haben können?
Wir könnten so etwas machen wie:
def interleave(*args)
raise 'No arrays to interleave' if args.empty?
max_length = args.inject(0) { |length, elem| length = [length, elem.length].max }
output = Array.new
for i in 0...max_length
args.each { |elem|
output << elem[i] if i < elem.length
}
end
return output
end
Aber gibt es einen besseren 'Ruby'-Weg, vielleicht mit zip oder transponieren oder so?