1. ホーム
  2. ruby

[解決済み] Rubyで、selectとmapを組み合わせたArrayメソッドはありますか?

2022-10-21 06:56:22

質問

私はいくつかの文字列値を含むRubyの配列を持っています。 私はする必要があります。

  1. いくつかの述語に一致するすべての要素を見つける
  2. マッチした要素を変換で実行する
  3. 結果を配列として返す

今現在、私のソリューションはこのような感じです。

def example
  matchingLines = @lines.select{ |line| ... }
  results = matchingLines.map{ |line| ... }
  return results.uniq.sort
end

selectとmapを1つの論理文にまとめたArrayやEnumerableのメソッドはありますか?

どのように解決するのですか?

私は通常 mapcompact は、選択条件とともに、後置修飾子として if . compact は、ニルを取り除く。

jruby-1.5.0 > [1,1,1,2,3,4].map{|n| n*3 if n==1}    
 => [3, 3, 3, nil, nil, nil] 


jruby-1.5.0 > [1,1,1,2,3,4].map{|n| n*3 if n==1}.compact
 => [3, 3, 3]