给出以下ruby数组:
["2XL", "3XL", "4XL", "5XL", "6XL", "L", "M", "S", "XL"]
Run Code Online (Sandbox Code Playgroud)
如何对其进行排序以使其按此顺序排列?
["S", "M", "L", "XL", "2XL", "3XL", "4XL", "5XL", "6XL"]
Run Code Online (Sandbox Code Playgroud)
请注意,并不总是存在每个尺寸.
为了历史,这是我最初的实现.
sorted_sizes = []
sorted_sizes << "S" if sizes.include?("S")
sorted_sizes << "M" if sizes.include?("M")
sorted_sizes << "L" if sizes.include?("L")
sorted_sizes << "XL" if sizes.include?("XL")
sorted_sizes << "2XL" if sizes.include?("2XL")
sorted_sizes << "3XL" if sizes.include?("3XL")
sorted_sizes << "4XL" if sizes.include?("4XL")
sorted_sizes << "5XL" if sizes.include?("5XL")
sorted_sizes << "6XL" if sizes.include?("6XL")
sorted_sizes
Run Code Online (Sandbox Code Playgroud)
saw*_*awa 15
["S", "M", "L", "XL", "2XL", "3XL", "4XL", "5XL", "6XL"] & ["2XL", "3XL", "4XL", "5XL", "6XL", "L", "M", "S", "XL"]
# => ["S", "M", "L", "XL", "2XL", "3XL", "4XL", "5XL", "6XL"]
Run Code Online (Sandbox Code Playgroud)
这是一种可以处理重复的方法:
SORT_ORDER = ["S", "M", "L", "XL", "2XL", "3XL", "4XL", "5XL", "6XL"]
["2XL", "3XL", "4XL", "5XL",
"6XL", "L", "M", "S", "XL"].sort_by { |x| SORT_ORDER.index(x) }
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
843 次 |
| 最近记录: |