2016-07-04 17 views
0

私は次のようないくつかのキー:値のペアを持つ辞書を持っています。キーの辞書を並び替えます:javascriptの値のペア

rank = { 
      "Team 1" : 34, 
      "Team 2" : 55, 
      "Team 3" : 29, 
      "Team 4" : 61, 
      ... 
     } 

キーはチーム名と値であり、シーズンの終わりにポイントされているので、私は最終順位を印刷するために、それらの値に基づいて、カップルをソートします。

誰かが私を助けることができますか?事前に感謝します

+1

あなたがここにあなたの回答を見つけることができ – k102

+0

その後、並べ替え、配列にこれを変換します。http://stackoverflow.com/questions/25500316/sort-a-dictionary-by-value-in-javascript – L01c

+1

をそのためには、通常に簡単です'var '=' {' name ':'チーム1 '、'値 ':34}、{'名前 ':'チーム2 '、'値 ':55}、...]; 'あなたのデータをソート/フィルタ/マップするためのすべての配列の良さ。 – Shilly

答えて

0

Javascriptのオブジェクトのキーと値には固有の順序はありません。必要な順序に並べ替えるには、それらを順序付けられた構造に格納する必要があります。

は固有の順序を持​​っていた、のはArrayにアイテムを取得してみましょう:

var object = { 
    a: 1, 
    b: 5, 
    c: 2 
} 

var keyValues = [] 

for (var key in object) { 
    keyValues.push([ key, object[key] ]) 
} 

keyValues配列は今['a', 1], ['b', 5], ['c', 2]を保持しています。比較のために、各ペアに第2の値を使用して、のは、この配列をソートしてみましょう:

keyValues.sort(function compare(kv1, kv2) { 
    // This comparison function has 3 return cases: 
    // - Negative number: kv1 should be placed BEFORE kv2 
    // - Positive number: kv1 should be placed AFTER kv2 
    // - Zero: they are equal, any order is ok between these 2 items 
    return kv1[1] - kv2[1] 
}) 

keyValuesが大きいと小さいから選別されます。オブジェクトに戻すことはできません。そうしないと、注文は失われます。

関連する問題