【问题标题】:Sorting 2 arrays the same way in swift在 swift 中以相同的方式对 2 个数组进行排序
【发布时间】:2017-04-22 18:27:06
【问题描述】:

我有一个用于商品名称的数组,还有一个用于商品价格的数组。我想将价格从最低到最高排序,但有适当的项目并且价格处于相同的索引。

例如: [9, 4, 1] & ["item 1", "item 2", "item 3"] -> [1, 4, 9] & ["item 3", "item 2", "item 1"]

知道如何有效地处理大型数组吗?

【问题讨论】:

标签: arrays swift


【解决方案1】:

给定

let prices = [9, 4, 1]
let names = ["item 1", "item 2", "item 3"]

解决方案 #1

你可以

let sorted = zip(prices, names).sorted { $0.0 < $1.0 }

let sortedPrices = sorted.map { $0.0 } // [1, 4, 9]
let sortedNames = sorted.map { $0.1 } // ["item 3", "item 2", "item 1"]

解决方案 #2

你真的应该使用模型值。

let prices = [9, 4, 1]
let names = ["item 1", "item 2", "item 3"]

struct Item {
    let name: String
    let price: Int
}

let sortedItems = zip(names, prices).map(Item.init).sorted { $0.price < $1.price }

// [Item(name: "item 3", price: 1), Item(name: "item 2", price: 4), Item(name: "item 1", price: 9)]

【讨论】:

    猜你喜欢
    • 2019-06-24
    • 1970-01-01
    • 2016-07-12
    • 2012-04-12
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多