我有一个哈希,它的值是二维数组,例如
hash = {
"first" => [[1,2,3],[4,5,6]],
"second" => [[7,88,9],[6,2,6]]
}
我想访问元素以在 xls 文件中打印它们。
我是这样做的:
hash.each do |key, value|
value.each do |arr1|
arr1.each do |arr2|
arr2.each do |arr3|
sheet1.row(row).push arr3
end
end
end
end
有没有更好的方法来访问每个元素而不使用 each 语句 4 次?
期望的结果是从键值对中获取每个值作为数组,例如
=> [1,2,3,4,5,6] #first loop
=> [7,88,9,6,2,6] #second loop
#and so on
hash = { "first" =>[[1, 2,3],[4,5,6]],
"second"=>[[7,88,9],[6,2,6]] }
hash.values.map(&:flatten)
#=> [[1, 2, 3, 4, 5, 6], [7, 88, 9, 6, 2, 6]]
是不是像这样简单
:hash.each do |k,v|
sheet1.row(row).concat v.flatten
end