gpt4 book ai didi

ruby-on-rails - ruby/rails 根据字符串数组对记录数组进行排序

转载 作者:数据小太阳 更新时间:2023-10-29 07:49:53 26 4
gpt4 key购买 nike

我有一个用户记录数组,我想根据优先级对用户进行排序,它存储在一个字符串数组中,并且这个数组总是在变化。

所以如果我有用户 =

    User id: 1, username: "so_admin", priority: "Monday"

User id: 2, username: "so_staff", priority: "Wednesday"

优先级 = ["星期三","星期二","星期五"]

如何对我的用户进行排序,以便首先列出优先级为“星期三”的用户,等等。

最佳答案

你可以这样做

users.sort_by { |u| priority.index(u.priority) || priority.size }

以上排序已完成,假设下面的 Array 将根据您的需要排序,将包含所有 uniq 值。 users 数组将使用已排序数组的索引。

priority = ["Wednesday","Tuesday","Friday"]

index(obj) → int or nil

Returns the index of the first object in ary such that the object is == to obj. Returns nil if no match is found.

priority 数组不包含所有工作日,而是 3。我想,如果任何用户有 prioritypriority 数组中没有,就让这些用户放在最后一个数组中。假设,对于任何用户都有一个优先级“星期日”,那么,该用户将被赋予最低优先级。怎么样?

看表达式 priority.index(u.priority) || priority.size,现在使用上述示例,priority.index("sunday") 给出 nil右侧 || 的表达式将被评估,即 priority.size,其中 3。这就是 user 将移动到 arraytail 的方式。

关于ruby-on-rails - ruby/rails 根据字符串数组对记录数组进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25020892/

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