2017-02-20 42 views
-1

У меня есть массив кортежей (Как отсортировать массив кортежей по значению Int?

var array = [("John Doe", 13), ("The Guy", 15), ("The Person", 19)] 

и хотите, чтобы отсортировать их по INT значение происходит от большого до как минимум. В конце концов, я хочу, чтобы массив выглядеть следующим образом

var array = [("The Person", 19), ("The Guy", 15), ("John Doe", 13)] 

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

ответ

4
var array = [("John Doe", 13), ("The Guy", 15), ("The Person", 19)] 

    print("myStringArray: \(array)\n") 
    array.sort {$0.1 > $1.1} 
    print("myStringArray: \(array)\n") 
1

Вы должны сравнить, по значению $1, который является значением Int кортежа, проверить этот код поможет вам

 var tuplesArray : [(String,Int)] = [("John Doe", 13), ("The Guy", 15), ("The Person", 19)] 
     let orderedTuples = tuplesArray.sorted { (value1, value2) -> Bool in 
       return value1.1 > value2.1 
     } 

Я надеюсь, что это поможет вам

+1

заявление как 'если someCondition {возвращает истину} еще {вернуться ложным}' всегда можно упростить, чтобы 'вернуть someCondition'. –

+0

Спасибо @MartinR за вашу рекомендацию, мой ответ был отредактирован –