使用Rails数组中的两个键/值对构建哈希数组

joh*_*321 0 ruby arrays hash ruby-on-rails

我有一个看起来像这样的数组:

[172336, 60, 172339, 64, 172342, 62, 172345, 61, 172348, 62, .....]
Run Code Online (Sandbox Code Playgroud)

我正在尝试将其转换为散列数组,其中每个散列有两个键/值对,键是"时间"或"高程","时间"散列的值索引为[0], [2],[4]等,而'海拔'是[1],[3]等等.所以,它看起来像:

[{time => 172336, elevation => 60}, {time => 172339, elevation => 64}, {time => 172342, elevation => 62},.....]
Run Code Online (Sandbox Code Playgroud)

通过以下方式获得每件物品都很简单:

my_array.each do |x|
 new_array << {:time => x}
end
Run Code Online (Sandbox Code Playgroud)

但这显然会将每个值分配给"时间"键.我无法弄清楚如何获得每一件物品.

Raf*_*fal 6

你可以尝试使用each_slice(2),它将返回的结果按2进行批处理

 my_array.each_slice(2) do |value| 
  array << {:time => value[0], :elevation => value[1]}
end
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助