我在rails中有一个数组,为了简单起见,我们要说是
@users = current_account.users
我还有其他几个数组,其中包含第一个数组的子集。这些看起来像这样
@missing_genders = @users.select{ |u| u.gender.nil?}
@missing_reference = @users.select{ |u| u.reference_number.nil?}
我也有其他几个这样的人。我需要的是生成一个没有错误的所有用户的列表。那么基本上第一个数组中的每个人都不存在于任何其他数组中?
通过它思考,我有@main_array = [1,2,3,4,5]
@error_array_1 = [1]
@error_array_2 = [1,2,3]
我正在寻找生成
@final_array = [4,5]
答案 0 :(得分:4)
答案很简单,你想从主数组中减去error_arrays,如下所示:
@final_array = @main_array - @error_array_1 - @error_array_2
=> [4, 5]
答案 1 :(得分:0)
如果您有许多数组,这是这样做的方法:
main_array = [1,2,3,4,5,6]
error_array_1 = [1]
error_array_2 = [1,2,3]
error_array_4 = [6]
p [main_array,error_array_1,error_array_2,error_array_4].reduce(:-) #=> [4, 5]