У мене є багатовимірний масив, де перший рядок містить мітки значень:
[
["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}]
Сподіваюся, це допоможе!