排序数组时出现问题

时间:2015-12-17 20:00:34

标签: arrays swift sorting key

我正在尝试对用于填充TableView的数组进行排序。

我的数据结构如下:

var data = [[Double:String]]()

ex:[[1450051409873:" foo"],[1450051409874:" bar"],[1450051409875:" baz"]]

我希望我的数据按双打值排序(即1450051409873 ......)

我正在执行以下操作来对数据进行排序: data.sortInPlace({$0[0] > $1[0]})

这似乎不起作用。

1 个答案:

答案 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"]