I have an array like this:
["Novembre", "Mars", "Décembre", "Octobre", "Février", "Janvier"]
How can i sort it so it becomes :
["Décembre", "Novembre", "Octobre", "Mars", "Février", "Janvier"]
I have an array like this:
["Novembre", "Mars", "Décembre", "Octobre", "Février", "Janvier"]
How can i sort it so it becomes :
["Décembre", "Novembre", "Octobre", "Mars", "Février", "Janvier"]
Almost the same, but surely it is better to generate the dictionary by rule than to have to type the month names and numbers yourself:
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]}
Calendar month names are not alphabetized so you need to provide the custom sort order value for each month.
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)")