我想按时间顺序整理一个数组。我完全不知道如何把自己带到那里......这是数组:
[["FM", "TEL", "ID", "2017-06-17 18:16:29 +0000", "TYPE", "inbox"], ["FM", "TEL", "ID", "2017-06-17 18:17:24 +0000", "TYPE", "no", "send"], ["Jm", "TEL", "ID", "2017-06-17 19:25:27 +0000", "TYPE", "no", "send"]]
我试过了,但没用....
str.sort({$0[3].date > $1[3].date})
我会喜欢最近的日期在开头,输出应该是这样的:
[["Jm", "TEL", "ID", "2017-06-17 19:25:27 +0000", "TYPE", "no", "send"], ["FM", "TEL", "ID", "2017-06-17 18:17:24 +0000", "TYPE", "no", "send"], ["FM", "TEL", "ID", "2017-06-17 18:16:29 +0000", "TYPE", "inbox"], ["FM", "TEL", "ID", "2017-06-17 18:17:24 +0000", "TYPE", "no", "send"]]
最佳答案
先用dateformatter把字符串转成日期再比较:
let str = [["FM", "TEL", "ID", "2017-06-17 18:16:29 +0000", "TYPE", "inbox"], ["FM", "TEL", "ID", "2017-06-17 18:17:24 +0000", "TYPE", "no", "send"], ["Jm", "TEL", "ID", "2017-06-17 19:25:27 +0000", "TYPE", "no", "send"]]
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss Z"
let sorted = str.sorted(by: {dateFormatter.date(from: $0[3])! > dateFormatter.date(from: $1[3])!})
关于ios - 如何按时间顺序对数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44612660/