我正在尝试对用于填充 TableView 的数组进行排序。
我的数据结构如下:
var data = [[Double:String]]()
例如:[[1450051409873:“foo”],[1450051409874:“bar”],[1450051409875:“baz”]]
我希望我的数据按 double 值排序(即 1450051409873...)
我正在执行以下操作来对我的数据进行排序:
data.sortInPlace({$0[0] > $1[0]})
这似乎不起作用。
最佳答案
那是字典,不是数组。如果您想访问按键排序的值,您可以创建一个排序的键数组,然后一次访问一个值:
var data: [Double:String] = [1450051409873: "foo", 1450051409874: "bar", 1450051409875: "baz"]
var sortedKeys = data.keys.sort()
for key in sortedKeys {
print(data[key]!)
}
// foo
// bar
// baz
或者您可以通过为 sort
提供闭包来直接计算排序值:
var sortedValues = data.sort({ lhs, rhs in
lhs.0 < rhs.0
}).map({ $0.1 })
// sortedValues == ["foo", "bar", "baz"]
关于arrays - 排序数组的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34343250/