Используя пример отсюда How to find the max value in a Swift object array?, как вы возвращаете элемент Usr
, а не значение Int age
?Как вернуть максимальный элемент в массив?
class Usr {
var age: Int
init(_ age: Int) {
self.age = age
}
}
let users = [Usr(1), Usr(8), Usr(5)]
let maxAge = users.map{$0.age}.max() //this returns 8 instead of the instance
Используйте там Сопоставимый протокол для работы с пользователем. Затем вы можете использовать 'users.max()' и он вернет желаемого пользователя. – Fogmeister
Функция 'max' также может использовать собственный предикат для сравнения элементов - вы видели [этот ответ] (http://stackoverflow.com/a/41217004/2976878) на вопрос, с которым вы связались? Он вернет 'Usr' с максимальным возрастом, или' nil', если массив пуст. – Hamish