gpt4 book ai didi

ruby - 当某些对象具有 nil 属性时,对哈希数组进行排序

转载 作者:数据小太阳 更新时间:2023-10-29 08:15:13 24 4
gpt4 key购买 nike

我有一个哈希数组,其中键是用户对象(这是因为我按用户对搜索结果进行分组,如下所示:#<User:0x007ffa3d570f00> => ["taco","pizza","unicorn"])。

我希望能够按用户对象属性对哈希数组进行排序,如下所示:

search_results.sort_by{|item| item[0].age} #item[0] = User object

但是,这会抛出一个 ArgumentError: comparison of NilClass with Integer failed当它遇到年龄为 Nil 的第一个用户时。我尝试添加 unless user.age.nil?sort_by block 中,但这没有帮助。

有什么想法吗?

最佳答案

nil 对象视为其他对象,也许是 0Float::INFINITY

search_results.sort_by { |user| user.age || 0 }

由于 nil.to_i == 0,您还可以:

search_results.sort_by { |user| user.age.to_i }

关于ruby - 当某些对象具有 nil 属性时,对哈希数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10238718/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com