Is there a quick way to compare two arrays and


#1

I have two arrays of different sizes.
Right now via find_all I can find all the elements that are common to
both
arrays.
All the elements in the smaller arrays can be found in the larger array.

What I would like to find now is all th elements that are in the larger
array and missing on the smaller array.
I know I can iterate and compare each element within a nested loop.
But is there a way to print out the elements that are missing from the
smaller array without having to implement a nested loop?

Thank you

Victor


#2

On Jan 9, 2006, at 12:53 PM, Victor R. wrote:

I know I can iterate and compare each element within a nested loop.
But is there a way to print out the elements that are missing from the
smaller array without having to implement a nested loop?

Thank you

Victor

Like this?

irb(main):009:0> a = [1,2,3,4,5]
=> [1, 2, 3, 4, 5]
irb(main):010:0> b = [1,2,3]
=> [1, 2, 3]
irb(main):011:0> a - b
=> [4, 5]

Cheers-
-Ezra


#3

Ezra,
Thanks a bunch.
This is soooooooooo simple that it is laughable.
I guess I need to read my Ruby books a bit more.

Thanks again


#4

Shame not, young grasshopper, “substracting” arrays only really makes
perfect sense after you know it’s there. Isn’t there a verbose name for
the method? I know Java had a removeAll(Collection) method on one of the
collection interfaces since gods know when, so it’s not really that
Obscure Voodoo ™.

David V.