2014-09-21 2 views
1

L'utilisation de array.each_with_index a renvoyé un tableau contenant les index de plusieurs éléments que j'ai définis égaux à une variable, indexes. Je veux juste savoir comment je peux alors trouver les éléments à chacun de ces index comme array[indexes] #=> element 1, element 2, etc. J'ai essayé l'exemple précédent sans chance, et aussi array[indexes.each {|x| x}].Recherche d'éléments d'un tableau avec un tableau d'index (Ruby)

Je ne sais pas pourquoi c'est si difficile, mais je suis tout nouveau à coder et je ne pouvais pas trouver la réponse ailleurs.

+0

Donne le code que vous avez essayé. –

Répondre

3

C'est ce que Array#values_at est pour:

indices = [0,2] 
p ["a", "b", "c", "a"].values_at(*indices) # => ["a", "c"] 
+0

C'est en fait ce que je cherchais, et je me permet de faire ce dont j'ai besoin. Merci! –

0

Vous avez probablement un mauvais départ.

each_with_index est destiné à itérer sur votre tableau avec un indice comme celui-ci:

array.each_with_index do |element, index| 

#do stuff with the element and the index here 

end 

Si vous avez déjà votre tableau d'index et que vous voulez vraiment faire de cette façon, vous pouvez:

indexes.each do |index| 

array[index] 

end 

Vous devez penser à each comme une boucle for l'autre élément, en passant successivement chaque élément à la variable dans | |. À l'intérieur du { } ou do ... end vous pouvez alors faire des choses avec votre élément. Ce n'est pas destiné à être utilisé comme x = array.each :)

+0

Quand j'ai dit que j'utilisais 'array.each_with_index', j'ai simplement laissé le reste du bloc que j'avais utilisé pour trouver les index que je voulais. Aurait dû laisser cela pour être clair. Votre solution fonctionne, merci beaucoup! –

Questions connexes