我有一个Contact
对象数组:
var contacts:[Contact] = [Contact]()
联系人类别:
Class Contact:NSOBject {
var firstName:String!
var lastName:String!
}
而且我想通过该数组进行排序lastName
,然后firstName
在某些情况下接触得到了相同的lastName
。
我可以按其中一个条件进行排序,但不能同时按两个条件进行排序。
contacts.sortInPlace({$0.lastName < $1.lastName})
我如何添加更多条件来对该数组进行排序?
想一想“按多个标准排序”是什么意思。这意味着首先通过一个条件比较两个对象。然后,如果这些条件相同,则领带将被下一个条件破坏,依此类推,直到获得所需的排序。
let sortedContacts = contacts.sort {
if $0.lastName != $1.lastName { // first, compare by last names
return $0.lastName < $1.lastName
}
/* last names are the same, break ties by foo
else if $0.foo != $1.foo {
return $0.foo < $1.foo
}
... repeat for all other fields in the sorting
*/
else { // All other fields are tied, break ties by last name
return $0.firstName < $1.firstName
}
}
您在这里看到的是Sequence.sorted(by:)
method,它参考提供的闭包来确定元素的比较方式。
如果您的排序将在许多地方使用,最好使您的类型符合Comparable
协议
。这样,您可以使用Sequence.sorted()
method,该方法会咨询您的Comparable.<(_:_:)
运算符实现,以确定元素之间的比较方式。这样,您可以对任何s进行排序Sequence
,Contact
而不必重复排序代码。
我的数组如下所示: 我想根据它们的第二个和第三个值按升序对这些数组进行排序,但第三个数值为负数的数组必须递减排序,并放在其他数组之后 结果应该是这样的: 怎么做才能尽可能的优化呢?
问题内容: 在Swift 2.0中,您将如何按属性对自定义对象数组进行排序?我知道在Swift 1.2中,这是使用sorted()和sort()完成的。但是,这些方法在Xcode 7 beta 4中不再起作用。谢谢! 例如: 问题答案: 在Swift 2中: 您可以使用方法,使用来比较两个日期: 或者,如果您想对原始数组进行排序,则可以: 在Swift 3中 返回数组的排序形式,请使用,而不是 排
问题内容: 我有一个包含Quote对象的数组列表。我希望能够按名称,更改和更改百分比的字母顺序进行排序。如何排序我的数组列表? 问题答案: 创建一个合适的对象,它将根据你所需的条件比较两个项目。然后在你的上使用 。 如果以后要按其他条件排序,请使用不同的再次调用。
问题内容: 我有这个: 和[电影]数组。如何按名称的字母顺序对数组进行排序?我试过了: 和 但这不起作用,因为我没有访问电影的名称属性。 问题答案: 在传递给的闭包中,比较要排序的属性。像这样: 或以下要绕过案例的案例: 旁注: 通常,只有类型以大写字母开头;我建议使用and ,而不是and 。 例如,在操场上: 将按顺序 Swift5更新
我在下面有下面的Java代码,我正在尝试将其转换为Swift。如果有人能在这个问题上帮助我,我将非常感激。 谢谢
本文向大家介绍PHP使用array_multisort对多个数组或多维数组进行排序,包括了PHP使用array_multisort对多个数组或多维数组进行排序的使用技巧和注意事项,需要的朋友参考一下 PHP中array_multisort可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。 关联(string)键名保持不变,但数字键名会被重新索引。 输入数组被当成一个表的列并以