比较多维数组和返回索引

时间:2014-03-25 08:47:52

标签: ruby ruby-1.8.7

Ruby 1.8.7

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

如何比较变量数组中的每个数组并查看它是否相等, 如果相等则移动on else如果不相等则返回不相等的数组元素的索引并且停止比较

所以在这个例子中,

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

因此,继续前进

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

因此返回指数即= 1

return 1

2 个答案:

答案 0 :(得分:4)

以下是我将如何使用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

答案 1 :(得分:0)

[[1.5,"cm"],[1.5,"cm"],[1.5,"m"]]
.each_cons(2).with_index(1).find{|(a, b), i| a == b}.last
# => 1
相关问题