QA@IT

RubyとArrayからインデックスで特定の要素を複数取得する

4559 PV

このようにRubyのArrayで特定の複数の要素をインデックスで取得したいのですが

a = ["1","2","3","4","5"]
a = a[1],a[2],a[4]

これを行うメソッドは標準、もしくはactive_supportなどで提供されているでしょうか?
なければ以下の様なメソッドを定義しようと考えています。

class Array
    def pick_at(*indices)
        indices.map{|i| self[i]}
    end
end

回答

Array#values_at(*indices)が使えそうですね。いかがでしょうか。

arr = (1..5).to_a
#=> [1, 2, 3, 4, 5]

arr.values_at(1,2,4)
#=> [2, 3, 5]
編集 履歴 (0)
  • ありがとうございます。標準で用意されてたんですね期待通りの動作が出来ました。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。