How to Sort an array in an ascending order swift 2.3 How to Sort an array in an ascending order swift 2.3 arrays arrays

How to Sort an array in an ascending order swift 2.3


let array=[        [            "msg":"Hi This is Jecky",            "name":"Susheel",            "sender":77,            "timestamp":1464241769520,            "username":"susheel",        ],        [            "msg":"Dubai",            "name":"Jecky",            "sender":78,            "timestamp":1464246547147,            "username":"Jecky",        ],        [            "msg":"How are you ?",            "name":"Susheel",            "sender":77,            "timestamp":1464243480381,            "username":"susheel",        ],        [            "msg":"Aje dekhai nai",            "name":"Jecky",            "sender":78,            "timestamp":1464244974198,            "username":"Jecky",        ],    ]    print("array = \(array)")    let sortedArray=array.sort { (obj1, obj2) -> Bool in        return (obj1["timestamp"] as! Double) < (obj2["timestamp"] as! Double)    }    print("sortedArray = \(sortedArray)")


If your array is mutable you can user sortInPlace

yourArray.sortInPlace{$0.timestamp < $1.timestamp}

and if not, you can create a new array from sort, like suggested by Kristijan (although no need for parentheses on trailing closures):

let newArray = yourArray.sort{$0.timestamp < $1.timestamp}


You can get this functionality using extension:

extension NSArray{ //sorting- ascending  func ascendingArrayWithKeyValue(key:String) -> NSArray{    let ns = NSSortDescriptor.init(key: key, ascending: true)    let aa = NSArray(object: ns)    let arrResult = self.sortedArray(using: aa as! [NSSortDescriptor])    return arrResult as NSArray  }  //sorting - descending  func discendingArrayWithKeyValue(key:String) -> NSArray{    let ns = NSSortDescriptor.init(key: key, ascending: false)    let aa = NSArray(object: ns)    let arrResult = self.sortedArray(using: aa as! [NSSortDescriptor])    return arrResult as NSArray  }}

use like this:

 let array=[      [        "msg":"Hi This is Jecky",        "name":"Susheel",        "sender":77,        "timestamp":1464241769520,        "username":"susheel",        ],      [        "msg":"Dubai",        "name":"Jecky",        "sender":78,        "timestamp":1464246547147,        "username":"Jecky",        ],      [        "msg":"How are you ?",        "name":"Susheel",        "sender":77,        "timestamp":1464243480381,        "username":"susheel",        ],      [        "msg":"Aje dekhai nai",        "name":"Jecky",        "sender":78,        "timestamp":1464244974198,        "username":"Jecky",        ],      ]    let a = NSArray.init(array: array)    let filArray = a.ascendingArrayWithKeyValue(key: "timestamp")    print(filArray)