2015-11-23 13 views
11

Ho due arrayrubino - Unire due array e rimuovere i valori che hanno duplicato

a = [1, 2, 3, 4, 5] 

b = [2, 4, 6] 

Vorrei unire le due matrici, quindi rimuovere i valori che è lo stesso con altri array. Il risultato dovrebbe essere:

c = [1, 3, 5, 6] 

Ho provato sottraendo i due array e il risultato è [1, 3, 5]. Voglio anche ottenere i valori dal secondo array che non è duplicato dal primo array ..

+7

a + b - (a & b) – Dmitry

+0

Grazie, modo più semplice di quello che pensavo .. Grazie mille !! – user3204760

+2

... o '(a-b) + (b-a)'. –

risposta

9

È possibile effettuare quanto segue!

# Merging 
c = a + b 
=> [1, 2, 3, 4, 5, 2, 4, 6] 
# Removing the value of other array 
# (a & b) is getting the common element from these two arrays 
c - (a & b) 
=> [1, 3, 5, 6] 

commento di Dmitri è anche lo stesso anche se mi è venuta con la mia idea in modo indipendente.

+0

Grazie per la risposta con la spiegazione !. – user3204760

+0

Dovresti fare riferimento al precedente commento di Dmitry poiché costituisce la base per la tua risposta (anche se l'hai inventato in modo indipendente). –

4

Che ne dici di questo.

(a | b) 
=> [1, 2, 3, 4, 5, 6] 
(a & b) 
=> [2, 4] 

(a | b) - (a & b) 
[1, 3, 5, 6] 
8

Utilizzare Array#uniq.

a = [1, 3, 5, 6] 
b = [2, 3, 4, 5] 

c = (a + b).uniq 
=> [1, 3, 5, 6, 2, 4] 
+0

'Vorrei unire i due array, quindi rimuovere i valori che sono gli stessi con altri array. Questa è la dichiarazione del problema ... la soluzione in questo caso non funzionerebbe. – Abhinay

+2

@Abhinay questa soluzione è corretta. è solo un approccio diverso. a meno che non abbia prestazioni peggiori, è un approccio più ovvio rispetto alla risposta accettata. – wuliwong

Problemi correlati