2017-02-20 86 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 {返回true}其他{返回false}声明'总是可以简化为'返回someCondition'。 –

+0

感谢@MartinR的推荐,我的回答被编辑了 –