2016-10-05 104 views
-2
let unsorted = [{Name:Amy,age:20},{Name:Bill,age:20}] 
let sortedDict = sorted(unsorted){a,b in return a.Name < b.Name} 

如何根據Name鍵對未排序的數組進行排序?上面的代碼似乎不起作用。排序字典數組(swift)

+0

是數組只有2個索引還是隻是一個例子?因爲如果它比這更長,你會想要實現一個for循環來排序數組,因爲它通過索引 – KSigWyatt

+0

我認爲你在這裏缺少一些,它不能是一個字典,因爲在你的情況下已經重複例如鍵名稱'',你的代碼當然不會編譯。你能澄清你的問題嗎? –

+0

其示例var array:[Dictionary ]。數組就是這樣的。我想根據關鍵名稱排序 – henry

回答

0

你在你的問題解釋是錯誤的,所以我假設你有一個像

let unsorted = ["Amy": Amy, "Dan": Dan, "Ben": Ben] 

字典如果是這樣,你可以通過

let sorted = unsorted.sort { $0.0 < $1.0 } 
+0

我已編輯上面的字典。你能利用這一點併爲此提出答案嗎?謝謝。 – henry

1

你的排序語法作品(幾乎)如果排序您正在使用自定義結構而不是字典

struct Person { 
    let name : String 
    let age : Int 
} 

let unsortedPeople = [Person(name:"Bill", age:20), Person(name:"Amy", age:20)] 

現在您可以使用sorted函數

let sortedDict = unsortedPeople.sorted{ $0.name < $1.name }