J'ai une carte qui modifie ou définit une valeur nil. Je veux supprimer le néant, les entrées de la liste. La liste n'est pas besoin d'être conservés.
C'est ce que j'ai actuellement:
items.map! { |x| process_x url } # [1, 2, 3, 4, 5] => [1, nil, 3, nil, nil]
items.select! { |x| !x.nil? } # [1, nil, 3, nil, nil] => [1, 3]
Je suis conscient que je pourrais juste faire une boucle, et à condition de recueillir dans un autre tableau comme ceci:
new_items = []
items.each do |x|
x = process_x x
new_items.append(x) unless x.nil?
end
items = new_items
Mais il ne semble pas que ruby-esque. Est-il un bon moyen pour exécuter une fonction sur une liste retrait/exclusion de la nils que vous aller?