如何按 Int 值对元组数组进行排序?

Posted

技术标签:

【中文标题】如何按 Int 值对元组数组进行排序?【英文标题】:How to sort an array of tuples by an Int value? 【发布时间】:2017-02-20 13:45:32 【问题描述】:

我有一个元组数组(

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

并希望按照 int 值从大到小对它们进行排序。最后我希望数组看起来像这样

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

我将如何做到这一点?

【问题讨论】:

【参考方案1】:
   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")

【讨论】:

【参考方案2】:

您必须通过$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
        

希望对你有帮助

【讨论】:

if someCondition return true else  return false 这样的语句总是可以简化为return someCondition 感谢@MartinR 的推荐,我的答案已编辑

以上是关于如何按 Int 值对元组数组进行排序?的主要内容,如果未能解决你的问题,请参考以下文章

如何按两个元素对元组列表进行排序?

按元组的第二个元素对元组列表进行排序,无需高阶函数或递归

如何根据另一个列表对元组列表进行排序

如何根据另一个列表中元组元素的顺序对元组列表进行排序?

根据元组的值对元组列表中的重复元组进行平均

如何根据某些文本标准对元组列表进行分组/存储?