【发布时间】:2020-07-15 12:56:24
【问题描述】:
如果数组 a 包含在数组 b 中也找到的任何数字,我希望它们从 a 中消失。
if b.any?
b.each do |asdf|
if a.include?(asdf)
a = a - [asdf]
end
end
end
这是最有效的方法吗?
更新:
答案很好,但我意识到搜索会返回一组 People 实例,@search_return。我的问题是我有 3 个 id 数组(整数):@event.a、@event.b 和 @event.c,它们是已经以某种身份注册该事件的人的 id。
我想从搜索返回中取出已经在活动中注册的人,但不幸的是 event.a event.b 和 event.c 只是人员的 id,而不是人员的实际实例。因此这一切:
if instance.a.any?
instance.a.each do |asdf|
qwer = Qwer.find(asdf)
if @search_return.include?(qwer)
@search_return = @search_return - [qwer]
end
end
end
if instance.b.any?
instance.b.each do |asdf|
qwer = Qwer.find(asdf)
if @search_return.include?(qwer)
@search_return = @search_return - [qwer]
end
end
end
if instance.c.any?
instance.c.each do |asdf|
qwer = Qwer.find(asdf)
if @search_return.include?(qwer)
@search_return = @search_return - [qwer]
end
end
end
这对数据库来说可能相当繁重,但它是一个不会经常执行的搜索
【问题讨论】:
-
* 什么是“实例”? * 你能用比“qwer”和“asdf”更有意义的东西吗 *你能举个@search_return的例子吗?