2014-10-22 1 views
-2

Я легко могу вывести первый элемент массива ('student'). Тем не менее, я пытаюсь получить второй и третий элементы для вывода.Ruby - Вывод элемента массива в хеш

Сама хэш: (На данный момент существует только один ключ, а массив является единственным значением)

student[name] = [test1, test2, test3] 

Первая строка для вывода «test1» является:

puts "#{student.keys.first} received #{student.values.first.first} in Test 1." 

Вторая строка для вывода «test2»:

puts "#{student.keys.first} received #{student.values.first(1)} in Test 2." 

Эта последняя строка не работает для меня. Он просто отображает все элементы, содержащиеся в массиве. Я хочу, чтобы он отображал второй (индекс 1).

+1

Вы должны получить доступ к хэш его ключи, а не по индексу. – Stefan

+0

Не могли бы вы привести пример типичного хэша 'student', включая ключи и значения? – Stefan

+0

'first [1]', а не 'first (1)' – BroiSatse

ответ

2

Существует опечатка ошибка .. изменить ваши кронштейны () к []

puts "#{student.keys.first} received #{student.values.first[1]} in Test 2." 

Попробуйте это в консоли:

student = {'name' => ['test1', 'test2', 'test3']} 
student.values.first[1] 
#=> "test2" 
0

Предполагая, что student начинается как пустой хэш, а затем вы запускаете student[name] = [test1, test2, test3].

Затем, когда вы запустите student.values.first, вы получите [test1, test2, test3]. Чтобы вернуться test2, вы можете использовать student.values.first[1].

Смежные вопросы