Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/53.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Ruby:比较两个数组中的匹配项,并计算匹配实例的数量_Ruby On Rails_Ruby_Arrays - Fatal编程技术网

Ruby on rails Ruby:比较两个数组中的匹配项,并计算匹配实例的数量

Ruby on rails Ruby:比较两个数组中的匹配项,并计算匹配实例的数量,ruby-on-rails,ruby,arrays,Ruby On Rails,Ruby,Arrays,我有两个阵列: @array1 = [a,b,c,d,e] @array2 = [d,e,f,g,h] 我想比较这两个数组以查找匹配项(d,e)并计算找到的匹配项数(2) #是的,但是如何计算实例? 找不到匹配项。。。 提前感谢~您可以使用阵列交点执行此操作: @array1 = ['a', 'b', 'c', 'd', 'e'] @array2 = ['d', 'e', 'f', 'g', 'h'] @intersection = @array1 & @array2 @交叉点现

我有两个阵列:

@array1 = [a,b,c,d,e]
@array2 = [d,e,f,g,h]
我想比较这两个数组以查找匹配项(d,e)并计算找到的匹配项数(2)


#是的,但是如何计算实例?
找不到匹配项。。。

提前感谢~

您可以使用阵列交点执行此操作:

@array1 = ['a', 'b', 'c', 'd', 'e']
@array2 = ['d', 'e', 'f', 'g', 'h']
@intersection = @array1 & @array2
@交叉点现在应该是['d','e']。然后,您可以执行以下操作:

<% if !@intersection.empty? %>
  <%= @intersection.size %> Matches Found.
<% else %>
  No Matches Found.
<% end %>

找到匹配项。
没有找到匹配项。
首先,只需添加两个数组

@array_sum = @array1 + @array2

output = [a,b,c,d,e,d,e,f,g,h]

@array_sum.dub_hash => {d => 2, e => 2}

或者选中此项以查找数组之间的总匹配数,将它们相加,然后减去唯一集。超集数组的长度与uniq集合的长度之差将是第一个数组中第二个数组的匹配计数。如果a2是唯一集,则此方法效果最佳

a1 = ['a','b','c','d','d','d']
a2 = ['a','d']

superset = (a1 + a2)
subset = superset.uniq

matches = superset.count - subset.count

如果您有两个以上的阵列,这将非常有用
@array_sum = @array1 + @array2

output = [a,b,c,d,e,d,e,f,g,h]

@array_sum.dub_hash => {d => 2, e => 2}
a1 = ['a','b','c','d','d','d']
a2 = ['a','d']

superset = (a1 + a2)
subset = superset.uniq

matches = superset.count - subset.count