Ruby2.6アドベントカレンダーの3日目の記事です。
Array
Array#union 追加
https://bugs.ruby-lang.org/issues/14097
引数に指定した配列を結合した新しい配列オブジェクトを返します。重複した要素は削除されます。
ary1 = [1, 2, 3] ary2 = ary1.union([2, 3, 4, 5]) ary1 #=> [1, 2, 3] ary2 #=> [1, 2, 3, 4, 5]
複数の配列を指定できること以外は Array#|
と同じ。
Array#difference 追加
https://bugs.ruby-lang.org/issues/14097
引数に指定した配列の要素ではない要素からなる新しい配列を返します。
ary1 = [1, 2, 3, 4, 5] ary2 = ary1.difference([1, 3, 5]) ary1 #=> [1, 2, 3, 4, 5] ary2 #=> [2, 4]
複数の配列を指定できること以外は Array#-
と同じ。
Array#filter, Array#filter! 追加
https://bugs.ruby-lang.org/issues/13784
Array#select
, Array#select!
の別名。
Array#to_h にブロックを渡すとキーと値を変換できる
https://bugs.ruby-lang.org/issues/15143
a = [[:hoge, 123], [:fuga, 456]] a.to_h #=> {:hoge=>123, :fuga=>456} a.to_h{|k, v| [k.to_s, v * 2]} #=> {"hoge"=>246, "fuga"=>912}