/ / Rails - багатовимірний масив з мітками для масиву хешу - ruby-on-rails, ruby

Rails - багатовимірний масив з етикетками до масиву хеш-рубінового на рейках, рубіновий

У мене є багатовимірний масив, де перший рядок містить мітки значень:

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

Я хотів би перетворити цей масив у масив хешів, де мітки - це індекси кожного елемента:

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

Який найшвидший спосіб зробити це в Ruby / Rails?

Відповіді:

3 для відповіді № 1

Ось один із способів перетворення багатовимірного масиву в масив хешів, де перший елемент у наданому масиві виконує функції набору ключів, що використовуються у повернених хешах:

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}]

Сподіваюся, це допоможе!