如何在Swift 4中按另一个整数数组对字符串数组进行排序

时间:2018-11-14 22:53:09

标签: arrays swift

我正在操场上使用以下代码作为示例:

let videosUnsorted = ["C Video", "G Video", "L Video", "T Video", "S Video ", "P Video", "A Video", "Z Video", "R Video"]

let videosValues = [1, 2, 3, 4, 5, 6, 7, 8, 9]

let sorted = videosUnsorted.sorted(by: {$0.videosValues > $1.videosValues})
print(sorted)

但是它给了我这个错误:

  

传递给不带参数的调用的参数

我尝试了以下操作,但这不是我要完成的操作。只是按同一数组中的元素排序:

let sorted = videosUnsorted.sorted(by: {$0.1 < $1.2})

1 个答案:

答案 0 :(得分:1)

最简单的方法是像这样使用zip()

zip(videosUnsorted, videosValues).sorted(by: { $0.1 < $1.1 }).map { $0.0 }

这会将2个数组组合为类型[(String, Int)],然后按Int值进行排序,并使用map()返回仅排序后的[String]