我需要通过以下方式对字典数组进行排序。该数组包含具有以下格式的字典:
[{
fecha = "09:54:51";
"nombre_vendedor" = Rafaela;
numero = 501;
precio = 52;
"punto_venta" = Base;
tipo = Gold;
}
{
fecha = "09:54:51";
"nombre_vendedor" = Miguel;
numero = 400;
precio = 40;
"punto_venta" = Base;
tipo = Gold;
}]
所有我必须按" numero"排序。键。
任何人都知道如何做到这一点。我一直在尝试sortArrayUsingComparator方法,但我没有得到任何结果。
谢谢。
答案 0 :(得分:3)
您可以通过以下方式使用排序方法:
myArray.sort { $0["numero"]! < $1["numero"]! }
答案 1 :(得分:0)
试试这个:
var descriptor: NSSortDescriptor = NSSortDescriptor(key: "numero", ascending: true)
var sortedResults: NSArray = results.sortedArrayUsingDescriptors([descriptor])
答案 2 :(得分:0)
您可以使用sort
方法,传递一个闭包,给定2个数组元素,确定哪个首先出现。
实现这一目标的一种安全方法是:
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
}
正如您可能注意到的,我通常更喜欢使用安全代码与不安全代码 - 这就是代码检查两个字典上numero
密钥是否存在的原因。
上面的实现对数组进行了排序,将最后没有numero
键的项放在最后 - 如果你想要相反的情况,只需切换最后2 return
个语句