Сортировать массив по 2 полям

-6

У меня есть список сортированных винилов:

Touch Me
49ERS
Everything
49ERS
Touch Me
49ERS
How Longer
49ERS

и я использую этот код:

self.vinyls.sort(by: { (vinyl1, vinyl2) -> Bool in
return vinyl1.artist < vinyl2.artist
})

Но я хотел отсортировать это так:

Touch Me
49ERS
Touch Me
49ERS
Everything
49ERS
How Longer
49ERS

Как бы я это сделал?

спросил(а) 2021-01-25T15:47:36+03:00 4 месяца, 4 недели назад
1
Решение
63

Вы можете добавить больше кода в сравнение, чтобы проверить, равен ли исполнитель, а затем проверить дорожку.

if vinyl1.artist < vinyl2.artist {
return true
} else if vinyl1.artist == vinyl2.artist {
return vinyl1.track < vinyl2.track
} else {
return false
}

ответил(а) 2021-01-25T15:47:36+03:00 4 месяца, 4 недели назад
45

Вы можете использовать сравнение кортежей:

self.vinyls.sort { ($0.artist, $0.track) < ($1.artist, $1.track) }

ответил(а) 2021-01-25T15:47:36+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема