2017-06-18 71 views
1

你好:)如何按照時間順序重新組織數組?

我想按時間順序排列一個數組。我不知道在所有的如何把自己那裏...這裏是數組:

[["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}) 

我最喜歡的最近日期在開始

謝謝!

+0

應該是什麼樣的輸出? –

+0

這有你需要的每一種語言的東西 - https://www.rosettacode.org/wiki/Sort_using_a_custom_comparator –

+0

你試過'str.sort {$ 0 [3] .date> $ 1 [3] .date}' https://stackoverflow.com/questions/26719744/swift-sort-array-of-objects-alphabetically –

回答

1

使用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])!}) 
+0

非常感謝:D – POL