我有一堆对象存储在一个数组中。
他们都有属性:
distanceInSeconds: Int
我想知道是否有办法使用过滤器或其他数组方法在数组中的所有对象之间找到此属性的最大值?
例如:
var distances: [Distance] = []
var maxDistance = distances.filter(find max)
最佳答案
这将是 Swifty 方式(通过实现 Comparable
):
class Route : Comparable {
let distance: Int
init(distance: Int) {
self.distance = distance
}
}
func ==(lhs: Route, rhs: Route) -> Bool {
return lhs.distance == rhs.distance
}
func <(lhs: Route, rhs: Route) -> Bool {
return lhs.distance < rhs.distance
}
let routes = [
Route(distance: 4),
Route(distance: 8),
Route(distance: 2),
Route(distance: 7)
]
print(routes.maxElement()?.distance)
输出:
"8"
这适用于 Swift 2。如果您使用的是 Swift 1.2,maxElement(routes)
应该可以工作
关于ios - 在数组中的对象上使用过滤器来查找最大值? [ swift ],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31299942/