如果我想在Ruby中交错一组数组,并且每个数组的长度相同,我们可以这样做:
然而,如果数组的大小不同,我们该如何解决这个问题呢?我们可以尝试这样做:
a.zip(b).zip(c).flatten
然而,如果数组的大小不同,我们该如何解决这个问题呢?我们可以尝试这样做:
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
但是,也许有更好的“Ruby”方式,例如使用zip或transpose等方法吗?