【问题标题】:Searching Hash for entry that does not contain value在哈希中搜索不包含值的条目
【发布时间】:2015-11-04 05:06:15
【问题描述】:

我不太确定如何为这个问题命名,而且我很难让它发挥作用,所以就这样吧。

我有一个不同大小的用户哈希。这可以是 2 到 40 之间的任何值。我还有一个票证哈希,我想搜索并找到任何不包含我的用户哈希的 user_id 的条目。我不太确定如何做到这一点。我最后一次尝试使用这个:

@not_found = []
users.each do |u|
  @not_found += @tickets.select{|t| t["user_id"] != u.user_id}
end

我知道这不是正确的结果,因为它只对一个 user_id 进行比较。我需要做的是遍历所有票证并提取包含不在用户哈希中的 user_id 的任何结果。

我希望我能正确解释这一点并感谢任何帮助!

【问题讨论】:

  • 你的哈希看起来像数组。
  • 您能提供一些示例数据吗?

标签: ruby ruby-on-rails-4 hash


【解决方案1】:

试试这个

known_user_ids = users.map(&:user_id)
tickets_with_unknown_users = @tickets.reject{ |t| known_user_ids.include?(t["user_id"]) }

【讨论】:

  • 你可以用reject代替select not
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-27
  • 2011-06-14
  • 2023-03-15
  • 2017-02-15
  • 1970-01-01
  • 2010-10-30
相关资源
最近更新 更多