2つの配列に共通する要素を持つ新しい配列を取得する(intersection)

配列と配列に共通する要素を持つ新しい配列を作成して取得することができます。ここでは Ruby で2つの配列に共通する要素を持つ新しい配列を取得する方法について解説します。

(2022 年 10 月 28 日公開 / 2022 年 10 月 28 日更新)

2つの配列に共通する要素を持つ新しい配列を取得する

Array クラスで用意されている & メソッドを使用すると、 2 つの配列に共通する要素を持つ新しい配列を取得することができます。

具体的な例で使い方を確認します。

ary1 = ["A", "C", "D", "F"]
ary2 = ["B", "C", "D", "G"]
newary = ary1 & ary2

2 つの配列に共通する要素である "C" と "D" の要素を持つ新しい配列 ["C", "D"] を取得します。

なお重複する要素があった場合は取り除かれます。

ary1 = ["A", "C", "D", "C"]
ary2 = ["B", "C", "D", "G", "D"]
newary = ary1 & ary2

"C" と "D" の要素が重複していますが、新しい配列では重複している要素は 1 つだけを含む配列 ["C", "D"] を取得します。

なお Array クラスで用意されている intersection メソッドを使っても同じことが行えます。

intersection(*other_arrays)

引数に別の配列を指定してください。複数指定する場合はカンマ(,)で区切って指定します。引数に指定した配列と共通する要素を持つ新しい配列を返します。

次のように使用します。

ary1 = ["A", "C", "D", "F"]
ary2 = ["B", "C", "D", "G"]
newary = ary1.intersection(ary2)

2 つの配列に共通する要素である "C" と "D" の要素を持つ新しい配列 ["C", "D"] を取得します。なお重複する要素が含まれていた場合は取り除かれます。

サンプルコード

実際に試してみます。

# encoding: UTF-8

ary1 = ["A", "C", "D", "F"]
ary2 = ["B", "C", "D", "G"]
p(ary1)
p(ary2)

puts()

newary = ary1.intersection(ary2)
puts("共通する要素を含む配列を取得します")
p(newary)

実行結果は次のようになります。

2つの配列に共通する要素を持つ新しい配列を取得する

-- --

Ruby で2つの配列に共通する要素を持つ新しい配列を取得する方法について解説しました。

( Written by Tatsuo Ikura )

広告
Profile
profile_img

著者 / TATSUO IKURA

初心者~中級者の方を対象としたプログラミング方法や開発環境の構築の解説を行うサイトの運営を行っています。