dac*_*669 21 arrays sorting swift
我有一个字符串数组,
let array = [ "10", "1", "101", "NA", "100", "20", "210", "200", "NA", "7" ]
Run Code Online (Sandbox Code Playgroud)
我想将输出按升序排序为,
let sorted = [ "1", "7", "10", "20", "100", "101", "200", "210", "NA", "NA" ]
Run Code Online (Sandbox Code Playgroud)
我尝试使用sorted命令,但遇到2位以上时不起作用,例如:100,101,200等.
array.sorted { $0? < $1? }
Run Code Online (Sandbox Code Playgroud)
得到这个的简单方法是什么?
Leo*_*bus 55
您可以使用String方法localizedStandardCompare
let array = [ "10", "1", "101", "NA", "100", "20", "210", "200", "NA", "7" ]
let sorted = array.sorted {$0.localizedStandardCompare($1) == .orderedAscending}
print(sorted) // ["1", "7", "10", "20", "100", "101", "200", "210", "NA", "NA"]
Run Code Online (Sandbox Code Playgroud)
或者sort(by:)
在MutableCollection上使用该方法:
var array = [ "10", "1", "101", "NA", "100", "20", "210", "200", "NA", "7" ]
array.sort {$0.localizedStandardCompare($1) == .orderedAscending}
print(array) // ["1", "7", "10", "20", "100", "101", "200", "210", "NA", "NA"]
Run Code Online (Sandbox Code Playgroud)