Sort array of dictionary

后端 未结 3 796
無奈伤痛
無奈伤痛 2020-12-21 11:25

I need to sort an array of dictionaries in the following ways. The array contains dictionaries with the following format:

[{
  fecha = \"09:54:51\";
  \"nomb         


        
相关标签:
3条回答
  • 2020-12-21 12:06

    Try this:

    var descriptor: NSSortDescriptor = NSSortDescriptor(key: "numero", ascending: true)
    var sortedResults: NSArray = results.sortedArrayUsingDescriptors([descriptor])
    
    0 讨论(0)
  • You can use the sort method, passing a closure which, given 2 array elements, determines which one comes first.

    A safe way to achieve that is:

    array.sort { (lhs, rhs) in
        if let n2 = rhs["numero"] as? Int {
            if let n1 = lhs["numero"] as? Int {
                return n1 < n2
            }
            return false
        }
        return true
    }
    

    As you may notice, I usually prefer to use safe code vs. unsafe - that's the reason why the code checks for existance of the numero key on both dictionaries.

    The above implementation sorts the array in place, placing items not having the numero key at the end - if you want the opposite case, just switch the last 2 return statements

    0 讨论(0)
  • 2020-12-21 12:32

    You can use the sort method the following way:

    myArray.sort { $0["numero"]! < $1["numero"]! }
    
    0 讨论(0)
提交回复
热议问题