快速减少数组中的元组

MooCow

有没有一种方法可以在元组数组上调用reduce函数以找到最大值?

例如

struct Gate{

    var maxedOpenGates = 1

    var GatesOpen : [(openOrdered : Int, gateNum : Int )] = []

    init(defaultSelected : Int = 0){

        GatesOpen.append(openOrdered : 1, gateNum : defaultSelected)
    }

    private func manipulateGates(gates : [SegmentButton]){
        for i in GatesOpen{
            gates[i.gateNum].toggleSelected()
        }

    }

    mutating func openGate(index : Int, buttons : [SegmentButton]){

        if GatesOpen.count < maxedOpenGates{
            GatesOpen.append(  openOrdered: GatesOpen.count , gateNum: index)

        }else{
         //////Finding the gate that was Opened the longest////
            let lastGate = GatesOpen.reduce(Int.min,{ max($0,$1) })

        }
        manipulateGates(buttons)
    }
}

我试图根据openOrdered减少的地方

 let lastGate = GatesOpen.reduce(Int.min,{ max($0,$1) })
马丁·R

是的,您可以像其他数组一样减少元组数组。Combine函数的参数是数组的元素,在您的情况下为“ gate tuples”。并且如果减少数组的结果也应该是门元组,则初始元素和Combine函数的结果也必须是该类型:

let lastGate = gatesOpen.reduce(gatesOpen[0]) {
        $0.openOrdered < $1.openOrdered ? $1 : $0
}

当然,数组必须至少具有一个元素才能起作用。为了避免gatesOpen[0]与自身进行不必要的比较,您可以将其更改为(在@Airspeed的注释后编辑):

let lastGate = dropFirst(gatesOpen).reduce(gatesOpen[0]) {
    $0.openOrdered < $1.openOrdered ? $1 : $0
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

减少数组在Swift中设置

来自分类Dev

如何减少数组中的循环参数

来自分类Dev

使用for循环在ruby中减少数组

来自分类Dev

在 Javascript 中的对象数组中映射和减少数组

来自分类Dev

减少数组的数组并从Javascript数据中删除null

来自分类Dev

按规则减少数组中对象的实例

来自分类Dev

根据列中的索引减少数组的长度

来自分类Dev

无法减少数组中相关的 JavaScript 对象

来自分类Dev

减少数组到第一个和最后一个元素的元组?

来自分类Dev

减少数字的多维数组

来自分类Dev

JavaScript-减少数组

来自分类Dev

Javascript-减少数组的数组

来自分类Dev

快速过滤元组数组

来自分类Dev

通过平均数组中的点来减少数组的大小(IDL)

来自分类Dev

减少数组到元素的总和

来自分类Dev

减少数组超出范围

来自分类Dev

模板:减少数组大小失败

来自分类Dev

JS均匀地减少数组

来自分类Dev

减少数组以设置项目数?

来自分类Dev

通过平均减少数组大小

来自分类Dev

如何基于Javascript中的给定数量递增减少数组中的项

来自分类Dev

如何在JavaScript中组合过滤器和减少数组

来自分类Dev

减少Spark中的元组列表

来自分类Dev

减少数组和SplFixedArray的内存使用量

来自分类Dev

通过键减少数组对象并返回嵌套对象

来自分类Dev

JS (ES6):基于对象属性减少数组

来自分类Dev

基于 2 个键的属性减少数组

来自分类Dev

JavaScript 过滤并减少数组以连接字符串

来自分类Dev

从元组数组中删除元组