比较Ruby中缺少元素的两个数组

MrA*_*oIt 1 ruby arrays

我有两个有数千个元素的数组.我需要通过将它与另一个数组进行比较来找到一个数组中缺少的元素.有没有办法在不迭代整个数组的情况下获取缺失的元素?或者有什么比我正在做的更快?

这是我现在使用的:

def find_missing(array1, array2)
    missing_elements = []
    array1.each { |e|  
        unless array2.include? e
            missing_elements << e
        end
    }

    return missing_elements
end

array1 = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1]
array2 = [1, 2, 4, 5, 6, 7, 9]

puts find_missing(array1, array2)
Run Code Online (Sandbox Code Playgroud)

Yu *_*Hao 7

你想要第一个数组的副本,但删除第二个数组中出现的任何元素?这就是Array#-(数组差异):

array1 - array2
# => [10, 8, 3]
Run Code Online (Sandbox Code Playgroud)