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

どのように名前のキーに従ってソートされていない配列を並べ替えることができますか?上記のコードは動作しないようです。辞書の配列を並べ替える(即時)

+0

は2つのインデックスの配列ですか、これは単なる例ですか?これより長ければ、配列をソートするために 'for'ループを実装したいのですから – KSigWyatt

+0

ここではいくつか不足していると思いますが、あなたのケースでは辞書が繰り返されることはありませんキー 'Name'はもちろん、あなたのコードはまったくコンパイルされません。あなたはあなたの質問をより良く理解できますか? –

+0

その例、var配列:[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 }