2014-10-22 58 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 2014-10-22 08:32:44

+0

你能发表一个典型的'学生'哈希包括键和值的例子吗? – Stefan 2014-10-22 08:34:32

+0

'第一[1]',而不是'第一(1)' – BroiSatse 2014-10-22 08:54:05

回答

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]