Float类型的值没有枚举成员

时间:2016-11-06 09:28:43

标签: arrays swift enumerate

我有一个数组。目标是,删除前两个索引值,然后调用最多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类型的值没有枚举成员

嗯,我并不是说它是一个浮点数,我希望它是一个数组。

2 个答案:

答案 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)

remove(at:)将从数组中删除元素,并返回已删除的元素。不是数组。

尝试:

dev.cqyx.com:9798