如何与数组进行比较并计算不匹配的元素 - Ruby

时间:2017-01-13 01:11:19

标签: arrays ruby

我想比较两个数组。每个字母都有三个字母,如果字母不同,则返回的数字等于不匹配的字母,例如:

arr1 = ["A", "B", "C"]
arr2 = ["A", "D", "E"]

我需要一个返回2的方法。因为有两个元素不匹配。

2 个答案:

答案 0 :(得分:3)

您可以使用Enumerable#zipArray#count

arr1.zip(arr2).count { |a1,a2| a1!=a2 }
  #=> 2

请注意

arr1.zip(arr2) 
  #=> [["A", "A"], ["B", "D"], ["C", "E"]]

等效地,使用Array#transpose

[arr1, arr2].transpose.count { |a1,a2| a1!=a2 }
  #=> 2

答案 1 :(得分:0)

假设您的数组长度相同且没有重复数据,则速度会更快:

arr1.length - (arr1 & arr2).length
# => 2