如何根據屬性組織對象數組?例如可以說,如果我有這樣的:根據他們的character type
根據其屬性組織對象在數組中?
import UIKit
import SpriteKit
struct Person {
let name : String!
let age : Int!
let charcter : characterType!
enum characterType {
case happy, sad, mad, scared, excited
}
}
let people : [Person] = [
Person(name: "Bob", age: 10, charcter: Person.characterType.happy),
Person(name: "Joe", age: 45, charcter: Person.characterType.sad),
Person(name: "Tom", age: 105, charcter: Person.characterType.scared),
Person(name: "Mad", age: 3, charcter: Person.characterType.mad)
]
我怎樣才能組織people
陣列?我希望所有瘋狂的人都是第一個,然後開心,然後傷心,然後害怕在一個新的數組。
我該怎麼做? var newArray : [Person] ...
另外一件事我已經試過如下:
func organizeArray(){
var newArray = [Person]()
var array1 = []
var array2 = []
var array3 = []
var array4 = []
var array5 = []
for person in people {
switch person.charcter {
case happy...
append to array 1
case mad...
append to array 2
so on...
}
}
newArray = array1 + array2 + array3 + array4 + array5
}
但是當我運行這一點,需要的XCode永遠指數。如果我刪除這個函數everyting正常工作。我想要一個簡單的解決方案,並且不會導致XCode永遠索引(很多)。
它真的會導致「Xcode的索引永遠」?我懷疑...我認爲它是**你的代碼**進入一個無限循環,這實際上*沒有*與Xcode做(因爲它只是編輯器,它不是你的代碼。)至於如何* * sort **你的數組:使用它的'sort'方法並傳入一個比較閉包,它使用你需要的任何屬性比較兩個對象。 –
@TheParamagneticCroissant我的意思是 – Entitize