我想基于另一个数组在 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国家(无排序-任何顺序),其余国家/地区应按排序(A-Z)出现。
["UAE", "Saudi Arabia", "Qatar", "Bahrain", "Kuwait", "Oman", "Afghanistan", "Aland Islands", "Albania", "Algeria", "American Samoa" .....]
我可以按照以下方式进行操作,但是对于非海湾合作委员会国家来说,它似乎不是很好的代码,并且破坏了字母排序。
countries.sort_by{|x| gcc.index(x) || gcc.size }
还有更好的方法吗?
答案 0 :(得分:3)
gcc + (all_countries - gcc).sort