我有一个数组,我通过一个xml。我希望迭代每个元素到数组,这是哈希并使用键获取每个哈希元素值。 我想要像这样>>
阵列>>
education_split = [{"University"=>"Institute Of Engineering And Emerging Technologies", "Degree"=>"MBA", "Year"=>"2007"}, {"University"=>"H.N.B. Garhwal University", "Degree"=>"MSC", "Year"=>"2005"}, {"University"=>"H.P. University", "Degree"=>"Med", "Year"=>"2003"}, {"University"=>nil, "Degree"=>"12th", "Year"=>"1999"}, {"University"=>nil, "Degree"=>"10th", "Year"=>nil}]
现在我想迭代到数组的每个元素,并在迭代中获得大学,学位,年份的值。类似的东西..
education_split.each do |edu|
//here are some other things also like creating object
edu["University"]
edu ["Degree"]
edu["Year"]
end
这也有效但在某些情况下它是错误>> TypeError(没有将String隐式转换为Integer)
这里所有字段都是字符串,我得到的值也是字符串。
答案 0 :(得分:1)
只需检查哈希:
education_split.each do |edu|
//here are some other things also like creating object
if edu.is_a? Hash
edu["University"]
edu ["Degree"]
edu["Year"]
end
end
阅读错误,我确信您的收藏集education_split
还包含数组 哈希。现在为了防止错误,并且您只想对代码的那部分进行哈希,只需在任何特定迭代中检查edu
,是否为哈希。如果 hash ,请执行操作或跳过它。
TypeError(没有将String隐式转换为整数)只有当你尝试使用 strings 而不是整数来获取数组元素时才会出现 >。与a = [1, 2]
类似,现在执行a['x']
,并且看到您将收到您正在获得的确切错误。