当前位置: 首页 > 知识库问答 >
问题:

如何在Swift中按属性对结构进行排序[重复]

黄朗
2023-03-14

假设我想按x坐标对nsviews数组进行排序。

我怎么才能做到这一点?

共有1个答案

宗政鸿志
2023-03-14

注意,您可以稍微简化一下语法,这通常有助于提高可读性(重点是您正在做什么,而不是类型的语法等):

let sortedArray = sorted(allViewsArray) {
    $0.frame.origin.x < $1.frame.origin.x
}

尾随闭包可以在函数调用parens之外,类似于其他块结构,如ifwhile;如果闭包表达式是单个语句,则可以跳过返回,并且可以跳过函数签名并使用$0$1等作为参数名称。

最后一个最好只在没有更有用的名称时使用(例如,p1$0)。如果您确实想给它们命名,您仍然可以跳过类型:

let sortedArray = sorted(allViewsArray) { p1, p2 in
    p1.frame.origin.x < p2.frame.origin.x
}
 类似资料:
  • 问题内容: 在Swift 2.0中,您将如何按属性对自定义对象数组进行排序?我知道在Swift 1.2中,这是使用sorted()和sort()完成的。但是,这些方法在Xcode 7 beta 4中不再起作用。谢谢! 例如: 问题答案: 在Swift 2中: 您可以使用方法,使用来比较两个日期: 或者,如果您想对原始数组进行排序,则可以: 在Swift 3中 返回数组的排序形式,请使用,而不是 排

  • 假设我们有一个名为的自定义类,该类包含两个属性: 其中许多存储在一个阵列中: 如何按“fileID”升序或降序对图像数组进行排序?

  • 问题内容: 我有一个对象,有时我需要添加其他对象。 我想在此之后进行排序。我不想获取所有键和值,将它们与之排序,然后将其全部放入一个新对象。有没有更好的办法? 问题答案: 不,扩展不能为键或值定义可预测的排序顺序。 您可以尝试将所有值转储到诸如之类的东西中,这将对键施加自然排序。

  • 我有一个对象,有时需要向其添加其他。 我想在此之后对进行排序。我不想获取所有键和值,用对它们进行排序,然后将它们全部放入一个新对象。有更好的办法吗?

  • 问题内容: 我想按属性排序。这是我的代码… 现在我想按属性将其排序,例如在另一个活动中。但是我不知道该怎么做。有人知道吗? 问题答案: 您需要实现,例如: 然后像这样排序:

  • 问题内容: 如果我有一个JavaScript对象,例如: 有没有一种方法可以基于值对属性进行排序?这样我最终 问题答案: 将它们移动到一个数组,对该数组进行排序,然后将其用于您的目的。这是一个解决方案: 拥有数组后,您可以按自己喜欢的顺序从数组中重建对象,从而完全实现了您打算要做的事情。在我所知道的所有浏览器中都可以使用,但这取决于实现的怪癖,并且可能随时中断。您永远不应假设JavaScript对