2016-09-12 16 views
0

私は似たような疑問に対する多くの答えを見たことがありますが、それまでに何の方法も働いていませんでした。私はその後、並べ替えてハイからローに、0番目をつかむ、「ポイント」でpointsArrayをソートするために必要だforループの後の値で辞書の配列をソートする?

if let users = snapshot.value!["users"] as? Dictionary<String,AnyObject> { 

each.users = Int(users.count) 

var pointsArray = [Dictionary<String,Int>]() 
    for (key, value) in users { 


       let uid = key 
       let points = value["points"] as! Int 
       pointsArray.append([uid : points]) 

         } 

は(最高)要素は、その後、uidが使用することをつかみます。

私が試してみた:

var myArr = Array(pointsArray.keys) 
    var sortedKeys = sort(myArr) { 
    var obj1 = dict[$0] // get ob associated w/ key 1 
    var obj2 = dict[$1] // get ob associated w/ key 2 
    return obj1 > obj2 
      } 

これは私

Value of type [ Dictionary <String,Int>] has no member keys. 

を与え、私はそれは私がdicts自身対dictsの私のアレイ上の並べ替えを実行しようとしている原因だと思いますか?実際のディクショナリと比較して配列を並べ替えるには、これをどのように切り替えるのですか?

+0

私は、しかし、私はちょうど私自身の辞書を作ったので、私はfirebaseから欲しかった方法で値をプルする方法を見つけることができませんでした。可能であれば、ここでorderedByValueを使用することをお勧めします。 私の観測/データベース構造を編集に掲載しますか?この時点では、どのように設定されていますが、この辞書を並べ替えるほうが簡単かもしれません。 – user6820041

+0

削除されたコメントが見つからない場合は、次のように答えます。 bestScoreのキーにアクセスする必要があります:bestScore.keys.first。 同じ誤り - bestScoreは辞書であり、キーではなく、キーを持っています。さらに、それは1つの要素しか含まない辞書なので、bestScore.keys.firstが動作します。辞書の詳細はこちら:https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/CollectionTypes.html#//apple_ref/doc/uid/TP40014097-CH8-ID105 – lustoykov

+1

@leo ありがとうございます君は。私はIiがそれを見つけ出して削除してしまったと思っていました。私はあなたの通知を迷惑メールにしたくありませんでした。 おかげさまで助けてくれた男性に感謝します。 – user6820041

答えて

1

右 - 辞書のキーに正しくアクセスできません。ここで

は、作業コードです:

var pointsArray = [Dictionary<String, Int>]() 

pointsArray.append(["1" : 10]) 
pointsArray.append(["2" : 45]) 
pointsArray.append(["3" : 30]) 

// sort by points 
let sorted = pointsArray.sort({ $0.first!.1 > $1.first!.1 }) 

print(sorted) // [["2": 45], ["3": 30], ["1": 10]] 

Array(pointsArray.keys) - これは動作しません、pointsArrayarrayあり、したがって、それはkeys性質を持っていないため。 pointsArrayの内容は辞書であり、keysです。だから、次のように最初の辞書のキーにアクセスすることができます:pointsArray[0].keys

関連する問題