ruby-on-rails - Rails:基于另一个数组对数组进行排序
问题描述
我想根据另一个数组在Ruby on Rails中对数组进行排序,但仍想在结果中保留第一个数组值:-
all_countries = ["Afghanistan", "Aland Islands", "Albania", "Algeria", "American Samoa", "Andorra", "Angola", "Anguilla", "Antarctica", "Argentina", "Armenia", "Armenien", "Australia", ....,]
gcc = ["UAE", "Saudi Arabia", "Qatar", "Bahrain", "Kuwait", "Oman"]
所需的输出:
我想对所有国家/地区进行排序,但希望首先出现 GCC 国家(无排序 - 任何顺序),其余国家应出现在排序中(AZ)。
["UAE", "Saudi Arabia", "Qatar", "Bahrain", "Kuwait", "Oman", "Afghanistan", "Aland Islands", "Albania", "Algeria", "American Samoa" .....]
我可以通过以下方式做到这一点,但它似乎不是很好的代码,并且打破了非 gcc 国家的字母排序。
countries.sort_by{|x| gcc.index(x) || gcc.size }
有什么更好的方法吗?
解决方案
gcc + (all_countries - gcc).sort
推荐阅读
- javascript - 如何在 JavaScript 中迭代 Redis 排序集(ZADD/ZRANGEBYSCORE)?
- java - 当我将 JScrollPane 添加到我的 JTable 时,JTable 不可见
- spock - 将自定义信息添加到 Spock 全局扩展
- memory - 在什么情况下 Julia 会将内存分配给个位数?
- mysql - 输入未存储在 Mysql 数据库中
- java - 改组 ObservableList 会触发不正确的更改通知
- java - 根据找到的字符串使用循环调用不同的方法
- c - 上下文切换
- plugins - GraphQL 模式管理
- rabbitmq - 根据消息的属性之一作为路由键将消息路由到队列