首页 > 解决方案 > 如何匹配 2 个数组并在新数组 Ruby 中获得输出

问题描述

假设我有 2 个长度相同的数组,其中填充了整数

a = [6,3,5,1]
b = [6,2,5,3]

我想比较这些数组并在新(c)数组中得到一个输出,所以它看起来像这样

c = [+,-,+,-]

如果会有 0 个匹配项,那么我的新数组会给出[-,-,-,-],反之亦然,如果有 4 个匹配项[+,+,+,+]

标签: ruby-on-railsruby

解决方案


您可以使用zip从两个数组中获取对,然后可以通过 进行转换map,例如:

a.zip(b).map { |i, j| i == j }
#=> [true, false, true, false]

得到"+""-"而不是你会使用:

a.zip(b).map { |i, j| i == j ? '+' : '-' }
#=> ["+", "-", "+", "-"]

推荐阅读