/ / Ajout de n éléments à un tableau - ruby, tableaux

Ajout de n éléments à un tableau - ruby, tableaux

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 № 1
array = 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