有人可以解释一下如何在Swift 2.2中获得数组中最高的元素吗?
例如,假设我有这段代码:
let myArray: [Int] = [2, 1, 6, 3, 5 ,7, 11]
我如何检索该数组的3个最高值? 在这种情况下,我想要数字6,7和11。
非常感谢任何帮助。
答案 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]
prefix
和suffix
具有额外的优势,即如果您的数组少于3个项目,它们不会崩溃。例如,如果您要求.suffix(3)
,则包含2个项目的数组将返回这两个项目。
答案 1 :(得分:-1)
let highestNumber = myArray.maxElement()
编辑:对不起,没有读完整个问题,此方法只检索一个最高值,这是一个应该有效的重新配置版本
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)
}