2010-11-16 16 views

回答

18
array1 + array2 - (array1 & array2) 

很短,比寫一個問題...

順便說一句,Ruby有一類Set,所以最好不要使用這個詞的同義詞的數組。

+0

這是多麼的美好。謝謝。 – 2010-11-16 21:23:33

+0

這很美。做得很好。 – 2013-04-19 23:39:33

10

是的,正如Nakilon所說,Set。

require 'set' 
s = Set.new('a'..'f') 
a = ['f','d','e','e','h','i'] #or any enum 
p s^a #=> #<Set: {"h", "i", "a", "b", "c"}> 
+0

設置爲數據結構的目的是什麼?感謝您的解決方案。 – 2010-11-16 21:25:39

+1

一個集合是值的集合,沒有重複。它具有快速插入,刪除和成員資格測試功能。至少最後一個對你的問題有用。 – steenslag 2010-11-16 21:39:01

+0

由於@steenslag給出的原因,Set是一個不滿意的類。可悲的是^似乎並不是別名('exclusive_or'會是理想的),不像其他Set操作符 – MatzFan 2016-09-22 13:32:12

1

你總是可以只是做

(array0 - array1) + (array1 - array0) 

a = [1, 2, 3, 4, 5] 
b = [2, 5, 8] 
(a - b) + (b - a) 
    # => [1, 3, 4, 8]