2010-01-20 5 views
0

Je me demande s'il existe une méthode Ruby intégrée pour obtenir le nième nombre dans un Séquence de 12 éléments, peu importe la taille de 'n'. Par exemple, si j'ai une séquence (représentée par un tableau ci-dessous) qui a 3 éléments, et si j'essaie d'accéder au quatrième élément, cela commence par le début. Voici une méthode qui va le faire, mais je me demande s'il y a une façon intégrée de le faire.Quel est le moyen le plus simple de créer une séquence répétitive a: ['a', 'b'] [2] = 'a'

Array.class_eval do 
    def sequenced(n) 
    n/size >= 1 ? fetch(n%size) : fetch(n) 
    end 
end 

['a', 'b', 'c'].sequenced(3) => 'a' 

Répondre

3

Pourquoi avez-vous la taille cas particulier n < cas? Il suffit d'utiliser fetch(n%size)

+0

... heh le point formidable .... assez bon pour moi :-). Au fait, super gravatar. Je ne peux pas croire qu'ils ont annulé ce spectacle après seulement quelques années. – btelles

+0

Yup .. c'est la seule solution acceptable, je pense :) – Trevoke

+0

Aimé ce spectacle, regardé après l'école, même quand j'étais trop vieux pour être dans la cible démographique. –

1

Dans Ruby 1.9:

['a', 'b', 'c'].cycle.take(size).last 
+0

Idée astucieuse, merci! – btelles

Questions connexes