У меня есть два массива:
a = [1, 2, 3]
b = [{:item => 'apple', :quantity => 92}, {:item => 'banana', :quantity => 43}, {:item => 'kiwi', :quantity => 55}]
И я хочу вывод примерно так:
1. apple 92 2. banana 43 3. kiwi 55
Теперь, поскольку важно, чтобы каждый элемент в массиве b
был выровнен по порядку значений в массиве a
, я решил написать цикл each_with_index
, чтобы иметь возможность извлекать данные в желаемая позиция из массива b
:
a.each_with_index do |a_value, i|
puts a_value
puts '.'
puts b[i][:item]
puts b[i][:quantity]
end
Но я получаю эту ошибку:
NoMethodError: undefined method `[]' for nil:NilClass
from (irb):8:in `block in irb_binding'
from (irb):8:in `each'
from (irb):8:in `each_with_index'
from (irb):8
from C:/RailsInstaller/Ruby2.3.3/bin/irb.cmd:19:in `<main>'
Что я нахожу довольно странным, потому что хеш в этой позиции не пустой.
Если я распечатываю все содержимое массива в этой позиции, он работает, например:
a.each_with_index do |a_value, i|
puts b[i]
end
Что дает:
{:item => 'apple', :quantity => 92}
{:item => 'banana', :quantity => 43}
{:item => 'kiwi', :quantity => 55}
но я не могу указать ключ внутри хеша для печати содержимого? Что с этим?