2014-06-06 2 views
0

Existe-t-il un moyen de parcourir un tableau spécifique? Par exemple, user.org_names retours:Ruby en boucle dans un tableau spécifique?

["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"] 

Maintenant, je veux faire une boucle que par la quatrième rangée ["NEW", "Star Gold"].

Est-ce une possibilité dans Ruby? Je ne pouvais pas trouver une telle fonctionnalité.

+0

'user.org_names [3]' renverra le 4ème élément du tableau – MrYoshiji

+2

La valeur renvoyée n'est pas une syntaxe ruby ​​valide: s'il s'agit d'un tableau imbriqué, les parenthèses et les virgules entre les tableaux internes sont manquants. – Stefan

Répondre

3

Vous pouvez utiliser la notation de tableau de base [] avec l'index comme argument pour obtenir la valeur:

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

Dans votre cas, si vous voulez faire une boucle sur le 4ème élément:

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

ce se comporte comme:

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

if après la 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 

En gros la même chose que faire:

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

Mais en utilisant une syntaxe do/end et plusieurs lignes

0

Vous pouvez le faire de cette façon

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

I f ceci est un tableau de tableaux, peut-être que vous pourriez obtenir le quatrième élément (user.org_names[3]) du tableau et la boucle à travers elle comme ceci:

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

Ceci n'incrémente pas 'i', utilise' i + = 1' – MrYoshiji

+0

Ouais, merci, mademoiselle! –

Questions connexes