Мне нужно использовать следующие данные для построения массива хэшей. Первым элементом в массиве должно быть:Преобразование нескольких массивов в отдельные хэши внутри одного массива
{
salutation: 'Mr.'
first_name: 'John',
last_name: 'Dillinger',
address: '33 Foolish Lane, Boston MA 02210'
}
Данные приведены ниже. Я действительно пытаюсь понять, как это сделать. Некоторая помощь будет принята с благодарностью, поскольку я нахожусь в конце концов!
salutations = [
'Mr.',
'Mrs.',
'Mr.',
'Dr.',
'Ms.'
]
first_names = [
'John',
'Jane',
'Sam',
'Louise',
'Kyle'
]
last_names = [
'Dillinger',
'Cook',
'Livingston',
'Levinger',
'Merlotte'
]
addresses = [
'33 Foolish Lane, Boston MA 02210',
'45 Cottage Way, Dartmouth, MA 02342',
"54 Sally's Court, Bridgewater, MA 02324",
'4534 Broadway, Boston, MA 02110',
'4231 Cynthia Drive, Raynham, MA 02767'
]
Единственное решение, с которым я смог придумать, не работает. Любая идея, почему ???
array_of_hashes = []
array_index = 0
def array_to_hash (salutations, first_names, last_names, addresses)
while array_index <= 5
hash = {}
hash[salutation] = salutations(array_index)
hash[first_name] = first_names(array_index)
hash[last_name] = last_names(array_index)
hash[address] = addresses(array_index)
array_of_hashes << hash
array_index += 1
end
end
array_to_hash(salutations,first_names,last_names,addresses)
EDIT - С помощью вас, ребята, я был в состоянии получить мое разрешение на работу:
def array_to_hash (salutations, first_names, last_names, addresses)
array_of_hashes = []
array_index = 0
while array_index <= 4
hash = {}
hash[:salutation] = salutations[array_index]
hash[:first_name] = first_names[array_index]
hash[:last_name] = last_names[array_index]
hash[:address] = addresses[array_index]
array_of_hashes << hash
array_index += 1
end
puts array_of_hashes
end
array_to_hash(salutations,first_names,last_names,addresses)
'salutations.zip (first_names, last_names, addresses) .map ...'? :) – fl00r
@ fl00r Привет. Это тоже работает, но я уважал симметрию здесь. – sawa
Спасибо @sawa, оцените помощь. Единственное решение, которое я смог придумать самостоятельно, теперь также упоминается в вопросе. Любая идея, почему это не работает? – John