Question

Ruby 1.8.7

array = [[1.5,"cm"],[1.5,"cm"],[1.5,"m"]]

How to compare each array inside the variable array and see if it is equal, if equal then move on else if not equal then return the index of the array element which was not equal and stop comparing.

So in this example,

array[0] == array[1] 
#=> true

Thus, move on

array[1] == array[2]
=> false

Hence return index i.e = 1

return 1
Was it helpful?

Solution

Here is how I would do using Array#each_index :

def compare_array_elements(array)
  siz = array.size - 1
  array.each_index { |i| return i if i != siz && array[i] != array[i+1] }
  nil
end

array = [[1.5,"cm"],[1.5,"cm"],[1.5,"mm"]] 
compare_array_elements(array) # => 1

array = [[1.5,"cm"],[1.5,"cm"],[1.5,"cm"]]
compare_array_elements(array) # => nil

OTHER TIPS

[[1.5,"cm"],[1.5,"cm"],[1.5,"m"]]
.each_cons(2).with_index(1).find{|(a, b), i| a == b}.last
# => 1
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top