Ruby_Array_18
この記事は、以下のドキュメントを改変(自分なりに整理)して利用しています。
class Array (Ruby 3.0.0 リファレンスマニュアル)
インスタンスメソッド
difference(*other_arrays) -> Array
- 自身からother_arraysの要素を取り除いた配列を返す
- 要素の同一性はObject#hashとObject#eql?により評価される
- self中で重複していて、other_arrays中に存在していなかった要素はその重複が保持される
- 新しい配列における要素の順はselfにおける要素の順と同じ
irb(main):001:0> arr = [1, 2, 3] => [1, 2, 3] irb(main):002:0> brr = arr.difference([2]) => [1, 3] irb(main):003:0> arr => [1, 2, 3]
irb(main):001:0> [1, 3, 5, 4, 4, 2, 2].difference([4, 10]) => [1, 3, 5, 2, 2]
irb(main):001:0> [5, 5, 4, 3, nil, 3, '5', 2, 1, 1].difference([nil], [2, 5]) => [4, 3, 3, "5", 1, 1]
irb(main):001:0> arr = %w[a b c] => ["a", "b", "c"] irb(main):002:0> brr = arr.difference(['b']) => ["a", "c"] irb(main):003:0> arr[0].capitalize! => "A" irb(main):004:0> brr => ["A", "c"] # memo # 元の配列に破壊的な変更を加えると影響が出る
メモ
- differenceというメソッドを今初めて知った