2つの配列を比較し、配列からの配列変数y
が存在する場合に補間された出力文字列を作成する場合、x
一致する各要素の出力を取得するにはどうすればよいですか?
これは私が試していたものですが、完全には結果が得られていません。
x = [1, 2, 4]
y = [5, 2, 4]
x.each do |num|
puts " The number #{num} is in the array" if x.include?(y.each)
end #=> [1, 2, 4]
2つの配列を比較し、配列からの配列変数y
が存在する場合に補間された出力文字列を作成する場合、x
一致する各要素の出力を取得するにはどうすればよいですか?
これは私が試していたものですが、完全には結果が得られていません。
x = [1, 2, 4]
y = [5, 2, 4]
x.each do |num|
puts " The number #{num} is in the array" if x.include?(y.each)
end #=> [1, 2, 4]
そのためにsetintersectionメソッドを使用できます&
。
x = [1, 2, 4]
y = [5, 2, 4]
x & y # => [2, 4]
x = [1, 2, 4]
y = [5, 2, 4]
intersection = (x & y)
num = intersection.length
puts "There are #{num} numbers common in both arrays. Numbers are #{intersection}"
出力します:
There are 2 numbers common in both arrays. Numbers are [2, 4]
OK、それで、&
この答えを得るためにあなたがする必要があるのは演算子だけのようです。
しかし、私がこれを行うために配列クラスに簡単なモンキーパッチを書いたことを知る前に:
class Array
def self.shared(a1, a2)
utf = a1 - a2 #utf stands for 'unique to first', i.e. unique to a1 set (not in a2)
a1 - utf
end
end
ただし、ここ&
では演算子が正解です。よりエレガント。