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

时间:2016-04-30 21:35:46

标签: arrays swift elements

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

例如,假设我有这段代码:

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

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

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:3)

要查找 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个项目的数组将返回这两个项目。

答案 1 :(得分:-1)

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