Demo (mi aspetto provocare [3]
):Come fare sane "set-difference" in Ruby?
[1,2] - [1,2,3] => [] # Hmm
[1,2,3] - [1,2] => [3] # I see
a = [1,2].to_set => #<Set: {1, 2}>
b = [1,2,3].to_set => #<Set: {1, 2, 3}>
a - b => #<Set: {}> WTF!
E:
[1,2,9] - [1,2,3] => [9] # Hmm. Would like [[9],[3]]
Come si fa a eseguire una differenza vera e propria serie indipendentemente dall'ordine degli ingressi?
Ps. Per inciso, ho bisogno di farlo per due array di 2000 elementi. Di solito, l'array # 1 avrà meno elementi dell'array # 2, ma questo non è garantito.
+1, bella risposta. Ho aggiunto l'array #^alla mia [libreria estensioni] (http://rubydoc.info/gems/shenanigans/1.0.4/Array#%5E-instance_method), non è sempre necessario passare attraverso i set. –