Osc*_*Ryz 6 language-agnostic sorting string-comparison
我有这个月数组:
["January", "March", "December" , "October" ]
Run Code Online (Sandbox Code Playgroud)
我希望它像这样排序:
["January", "March", "October", "December" ]
Run Code Online (Sandbox Code Playgroud)
我正在考虑一个"if/else"可怕的级联,但我想知道是否还有其他方法可以做到这一点.
坏的部分是我只需要用"string"(也就是说,不使用Date对象或类似的东西)来做这个
什么是好方法?
Fab*_*eeg 11
如果我有办法提供自定义排序顺序,我会创建一个定义正确顺序的列表:
correct = List("January", "February", "March", ...)
Run Code Online (Sandbox Code Playgroud)
然后按该列表中的位置排序,例如:
toSort.sort(a, b) => compare(correct.index(a), correct.index(b))
Run Code Online (Sandbox Code Playgroud)
使用name-> index创建一个表,然后根据表中的值对数组进行排序.
在C#arr.sort(myCompare),Java Collections.sort(arr, myCompare),Python arr.sort(myCompare),PHP usort($arr, 'myCompare'),C++中,有几个例子可能很有用sort(vec.begin(), vec.end(), myCompare).