我有一个阵列。目标是,删除前两个索引值,然后重新调用最大3个值(稍后对它们进行平均)。我的问题是回忆第二和第三个最大值
我的方法是回忆MAX,然后删除最大值并调用新的数组ARARY1,然后回忆这个数组中的最大值,它应该是第二个最高/最大值。
//调用最大值
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类型的值没有枚举成员
好吧,我不是说它是一个浮点数,而是一个数组。
最佳答案
你可以这样做整个手术:
例如:
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
关于arrays - Float类型的值没有枚举成员,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40447823/