2014-04-30 61 views
-1

我有一个数组,我正在通过一个xml.i想要将每个元素迭代到散列数组中,并使用key来获取每个散列元素值。 我想成才这样>>在ruby中迭代多维数组中的每个元素

阵列>>

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  

这也是工作,但在某些情况下,虽然错误>>类型错误(字符串隐式转换为整数)

这里的所有字段的字符串和值我得到也是字符串。

回答

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是散列或不是。如果散列,请执行您的操作或跳过它。

类型错误(字符串隐式转换为整数)只来了,当你尝试使用得到数组元素,而不是整数。像a = [1, 2],现在做a['x'],看到你会得到你现在得到的确切的错误。

+1

+1解释TypeError(没有将字符串隐式转换为整数) – Nimir

+0

是的,实际上这是问题,但我想将此数组转换为散列格式并保存到数据库中。 –

+0

@Mayank这似乎是一个不同的问题。用不同的方式提问,因为你目前的帖子没有任何线索可以帮助你。 –

相关问题