比较Ruby中的两个数组并创建第三个元素数组

时间:2014-07-10 19:19:45

标签: mysql sql ruby arrays ruby-on-rails-4

我有两个数组,array1array2。我需要比较这两个数组,并且我想创建第三个数组array3,它显示array2中不在array1中的元素。

这是我到目前为止所做的:

my_buckets = Model.select("DISTINCT bucket").where(["my_id = ?", params[:user]])

all_buckets = Model.select("DISTINCT bucket").collect { |x| x.bucket }.uniq.compact

buckets_not_in_my_buckets = Model.select("DISTINCT bucket").where(["bucket NOT IN (?)", my_buckets]).collect { |x| x.bucket }.uniq.compact

出于某种原因,buckets_not_in_my_buckets总是返回一个空数组([])。有没有更好的方法来解决这个问题?任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

buckets_not_in_my_buckets = all_buckets - my_buckets

我假设您的存储桶对象上的eql?运算符按照您的喜好运行。

有关详细信息,请参阅Array docs