如何在 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]
prefix
和 suffix
具有额外的优势,即如果您的数组少于 3 个项目,它们不会崩溃。例如,如果您要求 .suffix(3)
.
,则包含 2 个项目的数组只会 return 这两个项目
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)
}
有人可以解释一下如何在 Swift 2.2 中获取数组的最高元素吗?
例如假设我有这个代码:
let myArray: [Int] = [2, 1, 6, 3, 5 ,7, 11]
我如何检索该数组的 3 个最高值? 在这种情况下,我想要数字 6、7 和 11。
如有任何帮助,我们将不胜感激。
要找到 3 个最高的 项,对数组进行排序并使用 suffix
:
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)
.
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)
}