将阵列与索引红宝石进行比较



我试图在红宝石中获得两个相等长度的数组之间的差异。

array1 = [1,2,3,4]
array2 = [1,2,4,5]
diffArray = []
diffArray = array1 - array2 # => [3]

但我想保存相对于array1array2发生差异的索引。例如,我希望将diffArray保存为

#diffArray => [nil,nil,3,nil]#diffArray => ["","",3,""]

有没有办法在Ruby中进行此操作?

您的问题不清楚。

如果您对值不匹配的位置上的 array1值感兴趣,则可能需要使用此信息:

array1 = [1,2,3,4]
array2 = [1,2,4,5]
array1.zip(array2).map { |a, b| a if a != b }
#=> [nil, nil, 3, 4]

如果您对值不匹配的 indexes (提示:索引开始在0开始计数),请尝试以下操作:

array1.zip(array2).map.with_index { |(a, b), i| i if a != b }
#=> [nil, nil, 2, 3]

尚不清楚OP想要什么,但是如果要求是包含索引的数组,而不是其中一个数组的元素,那么我们想要:

array1 = [1,2,3,4]
array2 = [1,2,4,5]
(0...array1.size).map { |index| index if array1[index] != array2[index] }
#=> [nil, nil, 2, 3]

相关内容

  • 没有找到相关文章

最新更新