Rails - 带有哈希数组标签的多维数组

时间:2016-11-28 22:43:46

标签: ruby-on-rails ruby

我有一个多维数组,第一行包含值标签:

[
  ['a','b','c'],
  [1,2,3],
  [4,5,6]
]

我想将该数组转换为哈希数组,其中标签是每个元素中的索引:

[
  {'a' => 1, 'b' => 2, 'c' => 3},
  {'a' => 4, 'b' => 5, 'c' => 6}
]

在Ruby / Rails中最快的方法是什么?

1 个答案:

答案 0 :(得分:3)

这是将多维数组转换为哈希数组的一种方法,其中提供的数组中的第一个元素充当返回哈希中使用的键集:

arr = [
       ['a', 'b', 'c'],
       [1, 2, 3],
       [4, 5, 6]
      ]

labels = arr.shift

arr.map { |sub_arr| Hash[labels.zip(sub_arr)] }

# => [{'a' => 1, 'b' => 2, 'c' => 3}, {'a' => 4, 'b' => 5, 'c' => 6}]

希望它有所帮助!