Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
Rubyで逆の順序でトラバースしながら、特定の配列要素を(何らかの条件に基づいて)変更する方法はありますか?
より明確にするために、
問題は [1,2,3,4,5] の偶数を x に置き換えることです
出力は [1,x,3,x,5] (同じ配列) である必要がありますが、置換は右から左に行われる必要があります..5 から 1 に移動します。
前もって感謝します!
これは機能します: (arr.length -1).downto(0) { |x| arr[x] で何かをする }
p [1,2,3,4,5].reverse_each.map{|e| e.odd? ? e : e/2} #[5, 2, 3, 1, 1]
出力も逆にするのではなく、逆の順序でトラバースしたいことを理解しています。多分これ:
xs = [1, 2, 3] xs.reverse_each.with_index { |x, idx| xs[xs.size-1-idx] = x.to_s if x == 2 } xs #=> [1, "2", 3]