我有一個這樣的數組:以String格式排序包含數組日期
["Novembre", "Mars", "Décembre", "Octobre", "Février", "Janvier"]
我怎樣才能使它成爲排序是:
["Décembre", "Novembre", "Octobre", "Mars", "Février", "Janvier"]
我有一個這樣的數組:以String格式排序包含數組日期
["Novembre", "Mars", "Décembre", "Octobre", "Février", "Janvier"]
我怎樣才能使它成爲排序是:
["Décembre", "Novembre", "Octobre", "Mars", "Février", "Janvier"]
日曆月份名稱不按字母順序排列,所以你需要爲每個月提供自定義排序順序值。
var array = ["Novembre", "Mars", "Décembre", "Octobre", "Février", "Janvier"]
var sortedArray = array.sorted({
let dict = ["Janvier":1,"Février":2,"Mars":3,"Décembre":12,"Novembre":11,"Octobre":10]
return dict[$0] > dict[$1]
})
println("sorted \(sortedArray)")
感謝它的工作 – 2014-12-13 02:34:47
幾乎是相同的,但肯定是更好地生成由規則的字典,而不是必須鍵入月份的名稱和號碼自己:
var names:[String] = []
if let cal = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian) {
cal.locale = NSLocale(localeIdentifier: "fr")
names = cal.monthSymbols as [String]
}
var months : [String:Int] = [:]
for (ix,name) in enumerate(names) {
months[name] = ix
}
// now we are ready
let data = ["Novembre", "Mars", "Décembre", "Octobre", "Février", "Janvier"]
let result = data.sorted {months[$0.lowercaseString] > months[$1.lowercaseString]}
並很好地解決了分類。 – 2014-12-13 12:44:06
這陣總是要包含的幾個月年? – bbarnhart 2014-12-13 02:08:05
是的,它將始終是幾個月 – 2014-12-13 02:09:36
這些數組項是否爲字符串「Novembre」? – bbarnhart 2014-12-13 02:12:52