更新时间:2022-05-04 23:30:23
虽然有些罗word,但可以很好地控制丢失的键和非整数值.
It's a little wordy, but it get you at good control of missing keys and non-int values.
var array = [["key": "1"], ["key": "3"], ["key": "2"], ["key":"4"]]
array.sort { (lhs, rhs) -> Bool in
if let leftValue = lhs["key"], let leftInt = Int(leftValue), let rightValue = rhs["key"], let rightInt = Int(rightValue) {
return leftInt < rightInt
} else {
return false // NOTE: you will need to decide how to handle missing keys and non-int values.
}
}
如果您比较比较灵活,并且想要一些更清洁的东西.
If your a bit more flexible about the compare and want something a little cleaner.
array.sort {
guard let leftValue = $0["key"], let rightValue = $1["key"] else {
return false // NOTE: you will need to decide how to handle missing keys.
}
return leftValue.localizedStandardCompare(rightValue) == .orderedAscending
}