J'ai un tableau et un hash
L = [] H = {3 => "a", 2 => "b", 1 => "c"}
Et donc je vais parcourir les clés pour obtenir le nombre de fois n l'élément et ajouter cet élément à un tableau n
Résultat
L = ["a", "a", "a", "b", "b", "c"]
Quelle est une bonne façon d’écrire ceci avec inject (ou d’autres méthodes que je vois souvent dans le code ruby)?
Réponses:
16 pour la réponse № 1array = hash.flat_map { |k,v| [v]*k }
2 pour la réponse № 2
La réponse de @David répond parfaitement à vos besoins. Cependant, vous pouvez généralement ajouter un objet. o à un tableau existant n fois via l'un des:
# Modify the array in-place, or…
my_array.concat( [o]*n )
# …alternatively create a new modified array
new_array = my_array + [o]*n