Ios 如何在Swift中获得元组数组的最大双精度值?

Ios 如何在Swift中获得元组数组的最大双精度值?,ios,arrays,swift,Ios,Arrays,Swift,目前我有一个元组数组定义为var myArray=[(日期,双精度)]() myArray的输出可能如下所示: [(2016-08-30 07:00:00 +0000, 1.0), (2016-09-30 07:00:00 +0000, 0.050000000000000003), (2016-10-30 07:00:00 +0000, 20.0), (2017-06-30 07:00:00 +0000, 6.0), (2017-07-30 07:00:00 +0000, 5.0)] 我试

目前我有一个元组数组定义为
var myArray=[(日期,双精度)]()

myArray
的输出可能如下所示:

[(2016-08-30 07:00:00 +0000, 1.0), (2016-09-30 07:00:00 +0000, 0.050000000000000003), 
(2016-10-30 07:00:00 +0000, 20.0), (2017-06-30 07:00:00 +0000, 6.0), 
(2017-07-30 07:00:00 +0000, 5.0)]
我试图从元组数组中获取max
Double
值,但不确定如何进行

我看到有一个功能:

myArray.max { (<#(Date, Double)#>, <#(Date, Double)#>) -> Bool in 

}
myArray.max{(,)->Bool-in
}
但是,如果这是正确的函数,我也不确定如何使用它


有人能给我指出正确的方向吗?

您可以使用以下解决方案

let max = myArray.max { (left, right) -> Bool in
    return left.1 < right.1
}
让max=myArray.max{(左、右)->Bool-in
返回左.1<右.1
}
或者使用$syntax

myArray.max { $0.1 < $1.1 }
myArray.max{$0.1<$1.1}
试试这个:

myArray.max { (val1, val2) -> Bool in
    return val1.1 < val2.1
}
myArray.max{(val1,val2)->Bool-in
返回值val1.1
max
的工作原理与
排序
类似。您必须通过比较
$0<$1
。结果是具有最大值的(可选)元组

if let maxItem = myArray.max(by: {$0.1 < $1.1 }) {
    let maxDouble = maxItem.1
}
如果让maxItem=myArray.max(by:{$0.1<$1.1}){
设maxDouble=maxItem.1
}
同样,不鼓励您使用元组作为数据源

从:

如果您的数据结构可能会在临时作用域之外持续存在,请将其建模为类或结构,而不是元组


此代码给出给定数组中的max double

var myArray = [(2016-08-30, 1.0), (2016-09-30, 0.050000000000000003),
 (2016-10-30, 20.0), (2017-06-30, 6.0),
 (2017-07-30, 5.0)]
// Get maximum element

var max = myArray.max {
    $0.1 < $1.1
}

print(max!.1)
var myArray=[(2016-08-30,1.0),(2016-09-30,0.05000000000000003),
(2016-10-30, 20.0), (2017-06-30, 6.0),
(2017-07-30, 5.0)]
//获取最大元素
var max=myArray.max{
$0.1 < $1.1
}
打印(最大!.1)

将闭包添加到
max

let maxTuple = myArray.max{ $0.1 < $1.1 }!
let maxDouble = maxTuple.1
让maxTuple=myArray.max{$0.1<$1.1}!
设maxDouble=maxTuple.1