按另一个数组排序数组?
Posted
技术标签:
【中文标题】按另一个数组排序数组?【英文标题】:Sort array by other array? 【发布时间】:2017-08-02 13:27:00 【问题描述】:我想知道如何在 Swift 3 中按另一个数组对数组进行排序
假设我有:
struct Channel
var id: Int
let channel1 = Channel(id: 1)
let channel2 = Channel(id: 2)
let channel3 = Channel(id: 3)
let channel4 = Channel(id: 4)
let channel5 = Channel(id: 5)
var original = [channel1, channel2, channel3, channel4, channel5]
var favorites = [channel3, channel2, channel1, channel4]
我想将原始数组排序为:
[channel3, channel2, channel1, channel4, channel5]
是否有任何快速且低消耗的方法来做到这一点?
【问题讨论】:
【参考方案1】:favorites.append(contentsOf: original.filter chanel in
!favorites.contains(where: $0.id == chanel.id )
)
【讨论】:
嗯,这很简单!谢谢。【参考方案2】:Zip 是实现这一目标的简单方法
// use zip to combine the two arrays and sort that based on the first
// Your original array
let combined = zip(array1, array2).sort $0.0 < $1.0
print(combined) //
// Now use map to extract the individual arrays
let sorted1 = combined.map $0.0
let sorted2 = combined.map $0.1
希望对你有帮助
【讨论】:
以上是关于按另一个数组排序数组?的主要内容,如果未能解决你的问题,请参考以下文章