使用第一个索引 Swift 对数组中的数组重新排序
Reordering Arrays within Arrays using the First Index Swift
我正在尝试对数组进行排序,如下所示:
var arrayTst = [
[12443, "Starbucks", "Coffee1", "Coffee11", "Tea1", "Drinks1"],
[12495, "Coffee Bean", "Coffee2", "Tea2", "Cookies2"],
[13000, "GroceryMarket", "Tea3", "Bubble Tea3", "Shaved Ice3", "Mangoes"],
[10000, "Costco", "Soda4", "Salads4", "Pizza4"]
]
如何使用第一个索引(显示距离)从最小到最大对列表进行排序?例如,因为我希望这个数组按距离从最小到最大排序,所以我希望它排序为:
var arrayTst = [
[10000, "Costco", "Soda4","Salads4","Pizza4"],
[12443, "Starbucks", "Coffee1","Coffee11", "Tea1", "Drinks1"],
[12495, "Coffee Bean", "Coffee2", "Tea2","Cookies2"],
[13000, "GroceryMarket", "Tea3", "Bubble Tea3", "Shaved Ice3", "Mangoes"]
]
距离是使用 .distance(from: currentLocation) 计算的,并通过 for 循环放入数组中。
您需要重新考虑您的数据结构。而不仅仅是 Any
的数组,看起来你有一个…
的数组
struct Store {
let distance: Double
let name: String
let products: [String]
}
那么……
var arrayTst = [
Store(distance: 12443, name: "Starbucks", products: ["Coffee11", "Tea1", "Drinks1"]),
Store(distance: 12495, name: "Coffee Bean", products: ["Coffee2", "Tea2", "Cookies2"]),
etc…
]
let sortedArray = arrayTst.sorted { [=11=].distance < .distance }
我正在尝试对数组进行排序,如下所示:
var arrayTst = [
[12443, "Starbucks", "Coffee1", "Coffee11", "Tea1", "Drinks1"],
[12495, "Coffee Bean", "Coffee2", "Tea2", "Cookies2"],
[13000, "GroceryMarket", "Tea3", "Bubble Tea3", "Shaved Ice3", "Mangoes"],
[10000, "Costco", "Soda4", "Salads4", "Pizza4"]
]
如何使用第一个索引(显示距离)从最小到最大对列表进行排序?例如,因为我希望这个数组按距离从最小到最大排序,所以我希望它排序为:
var arrayTst = [
[10000, "Costco", "Soda4","Salads4","Pizza4"],
[12443, "Starbucks", "Coffee1","Coffee11", "Tea1", "Drinks1"],
[12495, "Coffee Bean", "Coffee2", "Tea2","Cookies2"],
[13000, "GroceryMarket", "Tea3", "Bubble Tea3", "Shaved Ice3", "Mangoes"]
]
距离是使用 .distance(from: currentLocation) 计算的,并通过 for 循环放入数组中。
您需要重新考虑您的数据结构。而不仅仅是 Any
的数组,看起来你有一个…
struct Store {
let distance: Double
let name: String
let products: [String]
}
那么……
var arrayTst = [
Store(distance: 12443, name: "Starbucks", products: ["Coffee11", "Tea1", "Drinks1"]),
Store(distance: 12495, name: "Coffee Bean", products: ["Coffee2", "Tea2", "Cookies2"]),
etc…
]
let sortedArray = arrayTst.sorted { [=11=].distance < .distance }