我正在尝试对用于填充TableView的数组进行排序。
我的数据结构如下:
var data = [[Double:String]]()
ex:[[1450051409873:" foo"],[1450051409874:" bar"],[1450051409875:" baz"]]
我希望我的数据按双打值排序(即1450051409873 ......)
我正在执行以下操作来对数据进行排序:
data.sortInPlace({$0[0] > $1[0]})
这似乎不起作用。
答案 0 :(得分:3)
这是一本字典,而不是一个数组。如果您想访问按键排序的值,您可以创建键的排序数组,然后一次访问一个值:
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"]