簡體   English   中英

多屬性排序Swift數組

[英]Multi property sort Swift Array

我有一些要排序的對象

let person = Person()
person.isHome = true
person.firstname = "Foo"
person.surname = "Bar"

等等...

我取所有人

guard let allPeople = controller.fetchedObjects as? Array<Person> else { return }

現在我要過濾和排序

var homeArray = allPeople
        .filter { $0.isHome == true }
        .sort { $0.surname < $1.surname }

很好...除了,如果我想要這樣的額外“排序描述符”怎么辦...

var homeArray = allPeople
        .filter { $0.isHome == true }
        .sort { $0.surname < $1.surname }
        .sort { $0.firstname < $1.firstname }
        .sort { $0.isOut == true && $1.isOut == false }

我仍然希望它們按姓氏排序,但是我也希望它們按姓氏排序,然后在不受傷的情況下受傷...語法是什么? 我似乎在任何地方都找不到它...我必須回到使用NSArray嗎?

簡單嗎

.sort { ($0.isOut == true && $1.isOut == false) && ($0.firstname < $1.firstname) && ($0.surname < $1.surname)}
let new = [person,person1,person2,person3,person4]

var homeInArray = new
.filter { $0.isHome == true &&  $0.isInjured == true }
var homeNINArray = new
.filter { $0.isHome == true &&  $0.isInjured == false }


 var newHomeArray =    homeInArray.sort { $0.firstName < $1.firstName } + homeNINArray.sort { $0.firstName < $1.firstName }

試試這個解決方案...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM