我有一个数组。目标是,删除前两个索引值,然后调用最多3个值(后来平均它们)。我的问题是回忆第二和第三个最大值 我的方法是调用max,然后删除最大值并调用新的数组array1,然后从这个数组中调出最大值,它应该是整体的第二个最高/最大值。
//调用最大值
var ammendedInitialArray = initialArray.dropFirst(2)
var max = Float(-1.0)
var stepmax1 = Int(-1)
for (index, value) in ammendedInitialArray.enumerated() {
if value > max{
max = value
stepmax1 = index
}
上面的作品
ammendedInitialArray1 = ammendedInitialArray.remove(at: stepmax1)
var max2 = Float(-1.0)
var stepmax2 = Int(-1)
*****for (index, value) in ammendedInitialArray1.enumerated{ *****
if value > max{
max2 = value
stepmax2 = index
}
*****行出现错误:Float类型的值没有枚举成员
嗯,我并不是说它是一个浮点数,我希望它是一个数组。
答案 0 :(得分:1)
你可以用这种方式完成整个操作:
e.g:
var initialArray = [2,5,17,1,3,5,14,6,4,8,7,9]
var newArray = initialArray.dropFirst(2).sorted().reversed()
// ^ 17,14,9,8,7,6,5,4,3,1
let topThreeValues = Array(newArray.prefix(3))
// ^ 17,14,9
topThreeValues.reduce(0, +)/topThreeValues.count
// ^ 13
答案 1 :(得分:0)