ios - 如何按时间顺序对数组进行排序?

标签 ios arrays swift sorting date

我想按时间顺序整理一个数组。我完全不知道如何把自己带到那里......这是数组:

 [["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/

相关文章:

swift - Swift 中函数声明和定义的分离

ios - 使用 Facebook SDK 登录从一个 Storyboard转到另一个 Storyboard

ios - 当再次显示 viewcontroller 时在 uitableviewcell 上渲染 View

ios - 将 UITableView 添加为 subview

iOS 加密通知声音

ios - 如何声明具有多个输入参数和输出参数的方法(函数)

ios - xib 自定义 View 中的 ScrollView 以适应多种宽度

javascript - 如何在 JavaScript 中将对象属性添加到数组中?

ruby-on-rails - 需要帮助最大化多个相似对象中的 3 个因素并适当排序

javascript - 如何在 Javascript 的基于 promise 的设置中调用 "apply"以将参数传递给下一个 then()?