arrays - 排序数组的问题

标签 arrays swift sorting key

我正在尝试对用于填充 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/

相关文章:

arrays - 数组类型的 VHDL 赋值

php - 使用键在 PHP 中进行数组映射

swift - 如何检测可观察对象是否在 RxSwift 中的特定时间未发出任何事件

objective-c - 在 swift 应用程序中调用 Objective c 方法

arrays - 排序算法与完全排序的总比较

JavaScript:按每个对象中的数字属性对对象数组进行排序

c# - 按字典顺序排序的字符串列表列表

c - 根据旧数组 malloc、realloc 将新字符添加到新数组

ios - Swift:从两个数组转换为数据集以在图表中使用

Swift Combine发布者与完成处理程序以及何时取消