いくつかの文字列値を含むRuby配列があります。する必要がある:
- 一部の述語に一致するすべての要素を検索します
- 一致する要素を変換で実行します
- 結果を配列として返す
現在、私のソリューションは次のようになります。
def example
matchingLines = @lines.select{ |line| ... }
results = matchingLines.map{ |line| ... }
return results.uniq.sort
end
selectとmapを組み合わせて単一の論理ステートメントにするArrayまたはEnumerableメソッドはありますか?
Enumerable#grep
メソッドは、要求された内容を正確に実行し、Rubyで10年以上使用されています。述語引数と変換ブロックを受け取ります。@hirolauがこの質問に対する唯一の正しい答えを提供します。