按值排序多维关联数组 (SWIFT)

Sorting of Multidimensional Associative Array by Value (SWIFT)

如何对以下关联数组进行排序:

[
  ["name": "Zone A", "type": "1"], 
  ["name": "Zone B", "type": "2"], 
  ["name": "Zone C", "type": "1"],
  ["name": "Zone D", "type": "3"], 
  ["name": "Zone E", "type": "2"], 
  ["name": "Zone F", "type": "3"],
  ["name": "Zone G", "type": "1"], 
  ["name": "Zone H", "type": "2"]
]

结果如下 - 按类型排序:

[
  ["name": "Zone A", "type": "1"], 
  ["name": "Zone C", "type": "1"],
  ["name": "Zone G", "type": "1"], 
  ["name": "Zone B", "type": "2"], 
  ["name": "Zone E", "type": "2"], 
  ["name": "Zone H", "type": "2"]
  ["name": "Zone D", "type": "3"],       
  ["name": "Zone F", "type": "3"],
] 

提前致谢!

使用sort

var a = [
  ["name": "Zone A", "type": "1"], 
  ["name": "Zone B", "type": "2"], 
  ["name": "Zone C", "type": "1"],
  ["name": "Zone D", "type": "3"], 
  ["name": "Zone E", "type": "2"], 
  ["name": "Zone F", "type": "3"],
  ["name": "Zone G", "type": "1"], 
  ["name": "Zone H", "type": "2"]
]

a.sort { (v1, v2) -> Bool in
    return v1["type"]! < v2["type"]!
}

//or:
//a.sort { [=10=]["type"]! < ["type"]! }

print("\(a)")

另请参阅:Swift how to sort array of custom objects by property value

sort&sortedhttps://developer.apple.com/documentation/swift/array/2296801-sort

  • sort: 就地排序集合。
  • sorted: Returns 序列的元素,已排序。