Ruby循环遍历特定的数组?

时间:2014-06-06 15:55:18

标签: ruby-on-rails ruby ruby-on-rails-3.2

有没有办法循环通过特定的数组? 例如,user.org_names返回:

["NEW", "Gold", "HEALTH SPRING"] ["Text Illinois"] ["Star Gold"] ["NEW", "Star Gold"] ["NEW", "Star Gold", "HEALTH SPRING"] ["Star Gold"] ["Star Gold"] ["Text Illinois", "Star Text", "Star Gold"] ["Text Illinois", "HEALTH SPRING"] ["NEW", "Star Gold", "Star Text"]

现在,我想只遍历第四个数组["NEW", "Star Gold"]

这是Ruby的可能性吗?我找不到这样的功能。

3 个答案:

答案 0 :(得分:3)

您可以使用索引作为参数的基本数组表示法[]来获取值:

user.org_names[3] # get the 4th element of the array returned
                  # returns nil if does not exists

在你的情况下,如果你想循环第四个元素:

fourth_element = user.org_names[3]
fourth_element.each do |element|
  # use element
end if fourth_element.present?

此行为与:

相同
fourth_element = user.org_names[3]
if fourth_element.present?
  fourth_element.each do |element|
    # use element
  end
end

if

之后

end

1.9.3p489 :006 > [1,2,3].each do |n|
1.9.3p489 :007 >   puts n
1.9.3p489 :008?> end if false
 => nil 

基本上与做:

相同
[1,2,3].each{ |n| puts n } if false

但使用do/end语法和多行

答案 1 :(得分:0)

你可以这样做

user.org_names[3].each do |element|
  puts element
end

答案 2 :(得分:0)

如果这是一个数组数组,也许你可以得到数组的第四个元素(user.org_names[3])并像这样循环遍历它:

<% i = 0 %>
<% user.org_names[3].each do |a| %>
    <% a[i] %>
    <% i+=1 %>
<% end %>