J'ai un tableau Ruby contenant des valeurs de chaîne. J'ai besoin de:
- Trouvez tous les éléments qui correspondent à un prédicat
- Exécutez les éléments correspondants via une transformation
- Renvoie les résultats sous forme de tableau
En ce moment, ma solution ressemble à ceci:
def example
matchingLines = @lines.select{ |line| ... }
results = matchingLines.map{ |line| ... }
return results.uniq.sort
end
Existe-t-il une méthode Array ou Enumerable qui combine select et map en une seule instruction logique?
Enumerable#grep
méthode fait exactement ce qui a été demandé et est en Ruby depuis plus de dix ans. Il prend un argument de prédicat et un bloc de transformation. @hirolau donne la seule réponse correcte à cette question.
filter_map
précisément dans ce but. Plus d'infos ici .