ruby - 如何在 Ruby 中创建一个排除另一个数组中的项的数组

标签 ruby arrays

我有两个数组,每个数组中包含的对象具有不同的属性。

participants

guests

唯一共同的字段是 provider_user_id

我想做这样的事情

all_people = participants.map {|p| p.provider_user_id <> guests.provider_user_id }

这可能是不正确的。

如何剔除那些也在guests数组中的参与者?

最佳答案

以下有效,但如果有更简洁的内容,我会很感兴趣。

guest_provider_ids = guest.map(&:provider_id)
non_guest_participants = participants.reject do |participant|
  guest_provider_ids.include?(participant.provider_user_id)
end

关于ruby - 如何在 Ruby 中创建一个排除另一个数组中的项的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7563887/

相关文章:

ruby - Nokogiri 没有从 Watir 加载 "browser"

Java,构造函数以数组作为参数以及来自驱动程序的用户输入

c - 如何通过 printf 在 C 中打印 char 数组?

ruby - 如何在 Capybara 中使用 synchronize?

ruby-on-rails - Rails 回形针处理器 : shell command failing

c - 在 c 中的长乘法期间跟踪第一个数字

c - 动态数组和结构 C 的 Valgrind 内存泄漏

php - PHP 中的多维数组、乘法和加法

ruby-on-rails - 错误消息应与标签匹配

ruby - 如何在Rails中实现投票而不投票gem