Rubyでは、特定の要素が変更されるような方法で配列をマップする最も表現力豊かな方法は何ですか?と他は手つかずのままです?特定の条件に一致する要素のみを変更して配列をマップする
これはそれを行うにはストレートな方法です:
old_a = ["a", "b", "c"] # ["a", "b", "c"]
new_a = old_a.map { |x| (x=="b" ? x+"!" : x) } # ["a", "b!", "c"]
もちろんの「残しアローン」の場合を省略する場合は十分ではない。私が望む何
new_a = old_a.map { |x| x+"!" if x=="b" } # [nil, "b!", nil]
のようなものですこれは:
new_a = old_a.map_modifying_only_elements_where (Proc.new {|x| x == "b"})
do |y|
y + "!"
end
# ["a", "b!", "c"]
Rubyでこれを行うにはいくつかの良い方法がありますか(またはRailsにはいくつかの便利な方法があります私はまだ見つけていない)?
返信いただきありがとうございます。私は集合的に、map
を三項演算子で使うのが最善であると確信していましたが、あなたの中には非常に興味深い答えが載っていました!
#mapの物はそのままですね。 ;-) –
ええ、私は同意します。あなたがそれをもっと好きになるならば、あなたは括約を取り出すことができます! –
閉鎖? FTL。私のポスト= Pを見てください。P –