从保存为哈希值的 2d 数组中访问元素的最佳方法是什么?



我有一个哈希,它的值是二维数组,例如

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

最新更新