如何从对象数组中获取最大日期(未来)swift
How to get max date (Future) from an object array swift
这是我的对象,我要在这里得到最高的expiresDate
。
struct LatestReceiptInfo {
var productId: String?
var expiresDate: Date? = nil
var isInIntroOffer_period: Bool?
var isTrialPeriod: Bool?
var cancellationDate: Date? = nil
}
latestReceiptInfoArray
是我的数组。
for latestReceiptInfo in latestReceiptInfoArray {
//2. Get the highest expire_date from latestInfoReceiptObjects array
if let exDate = latestReceiptInfo.expiresDate {
}
}
如果您只查找日期,而不是 LatestReceiptInfo 最高日期,那么您可以 compactMap
日期(取出 nil-values) 然后用max
函数得到最高的那个。
let highestDate = latestReceiptInfoArray
.compactMap { [=10=].expiresDate }
.max()
如果你想获得日期最长的LatestReceiptInfo,有多种方法可以实现。例如,通过过滤所有实际具有日期的值。之后你可以 force-unwrap (yugh) 比较中的日期。
let highestReceiptInfo = latestReceiptInfoArray
.filter { [=11=].expiresDate != nil }
.max { [=11=].expiresDate! < .expiresDate! }
这是我的对象,我要在这里得到最高的expiresDate
。
struct LatestReceiptInfo {
var productId: String?
var expiresDate: Date? = nil
var isInIntroOffer_period: Bool?
var isTrialPeriod: Bool?
var cancellationDate: Date? = nil
}
latestReceiptInfoArray
是我的数组。
for latestReceiptInfo in latestReceiptInfoArray {
//2. Get the highest expire_date from latestInfoReceiptObjects array
if let exDate = latestReceiptInfo.expiresDate {
}
}
如果您只查找日期,而不是 LatestReceiptInfo 最高日期,那么您可以 compactMap
日期(取出 nil-values) 然后用max
函数得到最高的那个。
let highestDate = latestReceiptInfoArray
.compactMap { [=10=].expiresDate }
.max()
如果你想获得日期最长的LatestReceiptInfo,有多种方法可以实现。例如,通过过滤所有实际具有日期的值。之后你可以 force-unwrap (yugh) 比较中的日期。
let highestReceiptInfo = latestReceiptInfoArray
.filter { [=11=].expiresDate != nil }
.max { [=11=].expiresDate! < .expiresDate! }