2011-01-11 3 views
4

2 개의 배열 (리스트)을 가지고 있고 두 배열에 공통적 인 값의 배열 (리스트)을 얻고 싶을 때 Ruby에 사용할 수있는 메소드가 있습니까? 이게 ..두리스트의 공통 값을위한 메소드

a = [1,2,3] 
b = [3,4,5] 
=> the method would return [3] 

그리고 그 반대의 경우, 그 배열 (목록)에서 "고유"한 값입니다.

a = [1,2,3] 
b = [3,4,5] 
=> the method would return [1,2,4,5] 

답변

2
AND : a & b 

은 루비의 배열에 대한 XOR 방법이 없습니다. 여기에 2 가지 방법이 있습니다 :

XOR : (a | b) - (a & b) 
XOR : (a + b) - (a & b) # this result can have duplicates! 

XOR : (a - b) | (b - a) 
XOR : (a - b) + (b - a) # this result can have duplicates! 
+0

정말로 2가 아니겠습니까? 그때 방법? :) –

2

당신이 찾고있는 단어 교차로대칭 차이 있습니다. AFAIK 그것은이 루비 : 당신이 다른 방법을 통해 그것을 할 수 있도록

[1,2,3] & [3,4,5] = [3] 
[1,2,3]^[3,4,5] = [1,2,4,5] 
+1

^세트에서만 작동합니다. 그러나 당신은'(Set [1,2,3]^Set [3,4,5]). to_a'라고 쓸 수 있습니다. – philosodad

+1

일명 (array1.to_set^array2.to_set) .to_a –