我有一个数组数组,其中包含三个测试的详细信息。这是数组:
test_arr = [
[‘unit test 1’, ‘physics’, ‘25’],
[‘unit test 2’, ‘chemistry’, ‘30’],
[‘final test’, ‘math’, ‘50’]
]
我想迭代这个数组三次(因为只有三个测试,其数据包含在数组中),以便在仅包含主题和标记的数组中获取哈希值。
我按如下方式进行迭代:
test_arr.each do |ta|
all_test_details << { subject: ta[1], marks: ta[2] }
end
我希望all_test_details
像这样阅读=&gt;
[ { subject: ‘physics’, marks: 25 },
{ subject: ‘chemistry’, marks: 30 },
{ subject: ‘math’, marks: 50 } ]
但是当我运行代码时,我得到的是all_test_details
重复十次。我无法弄清楚原因。
如何在包含哈希的单个数组中获取测试的名称和标记?
答案 0 :(得分:4)
利用map
:
test_arr.map { |data| { subject: data[1], marks: data[2] } }
#=> [{:subject=>"physics", :marks=>"25"},
#=> {:subject=>"chemistry", :marks=>"30"},
#=> {:subject=>"math", :marks=>"50"}]