Tengo una matriz base como esta

base_array=[0,3,5]

Hay una

second_array=[4,5,6,0,5,4]

Lo que quiero es crear una nueva matriz de second_array pero filtrar los valores que faltan en base_array

Entonces la nueva matriz se verá así

new_array=[5,0,5]

¿Cómo puedo hacer esto en ruby? Gracias.

0
Abhilash 13 nov. 2017 a las 11:57

2 respuestas

La mejor respuesta

Si solo desea los valores y no le importa el número de ocurrencias, puede usar la intersección:

base_array & second_array
=> [0, 5]

De lo contrario, simplemente selecciónelos así:

second_array.select { |v| base_array.include?(v) }
=> [5, 0, 5]
4
IngoAlbers 13 nov. 2017 a las 09:59

Probar esto

new_array = second_array  - (second_array  - base_array )
[4,5,6,0,5,4] - ([4,5,6,0,5,4] - [0,3,5])
>> [5, 0, 5]
3
Sachin R 13 nov. 2017 a las 09:00