如何在 Swift 中找到数组的最高元素?

How can I find the highest elements of an Array in Swift?

有人可以解释一下如何在 Swift 2.2 中获取数组的最高元素吗?

例如假设我有这个代码:

let myArray: [Int] = [2, 1, 6, 3, 5 ,7, 11]

我如何检索该数组的 3 个最高值? 在这种情况下,我想要数字 6、7 和 11。

如有任何帮助,我们将不胜感激。

要找到 3 个最高的 项,对数组进行排序并使用 suffix:

取最后 3 个项
let myArray = [2, 1, 6, 3, 5 ,7, 11]
let highest3 = myArray.sort().suffix(3)
print(highest3)  // [6, 7, 11]

对于 3 个最低 项,使用 prefix:

let lowest3 = myArray.sort().prefix(3)
print(lowest3)  // [1, 2, 3]

prefixsuffix 具有额外的优势,即如果您的数组少于 3 个项目,它们不会崩溃。例如,如果您要求 .suffix(3).

,则包含 2 个项目的数组只会 return 这两个项目
let highestNumber = myArray.maxElement()

Shown in playground

编辑:抱歉,没有阅读完整的问题,此方法仅检索一个最高值,这是一个应该可以工作的重新配置版本

let myArray: [Int] = [2, 1, 6, 3, 5 ,7, 11, 4, 12, 5]
var myArray2 = myArray
var highestNumbers: [Int] = []

while highestNumbers.count < 3 {
    highestNumbers.append(myArray2.maxElement()!)
    myArray2.removeAtIndex(myArray2.indexOf(myArray2.maxElement()!)!)
    print(highestNumbers)
}

Shown again in playground