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)]
我试图从元组数组中获取maxDouble
值,但不确定如何进行
我看到有一个功能:
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