2016-05-10 12 views
-1

こんにちは私は私の流星のテンプレートに表示されているこのフォームの配列を持っています。オブジェクトの配列内の配列を並べ替える

var data = [{text_name:'My life', 
score: [{name : 'james',score: 10}, 
     {name : 'john',score : 40}, 
     {name : 'Abu',score : 80}]}, 
     {text_name:'The game real', 
score: [{name : 'penny',score: 30} 
     {name : 'john',score : 20} , 
     {name : 'Abu',score : 30}] }] 

私が降順でオブジェクトの配列ですscoreキーをソートしたいです。 のサンプルデータを使用して、私はAbuのスコアが最も高いスコアを出したので最初に表示します。

このリンクに記載されているコードを使用してソートを試しました。Sorting an array of JavaScript objects

+1

。あなたが何を意味するのかを知るように修正してください(スコア:[... '?)また、あなたが試したことがあれば、間違ったものを投稿してください。 *また*、なぜこのタグがついているのですか?(tag:meteor)? – Amadan

+0

これは有効なJavaScriptではありません。最初の 'score:30}'の後にコンマがありません。 – Pang

答えて

1

私が正しく理解していれば、あなたが何をしようとしていること自体内でソートの各リストを持っています。だからここ

は、あなたがする必要があると思いますものです:

有効なJavaScriptではありません
// iterate over data 
for (var i = 0; i < data.length; i++) { 
    var item = data[i]; 
    // sort the item's score 
    item.score.sort(function(a, b) { 
    return b.score - a.score; 
    }); 
} 
+1

私はb.score.score-a.score.scoreを実行することで動作させることができました。あなたのご協力ありがとうございました。 –

0

は、sortメソッドを使用してみてください:

また、コメントとして有効なJSではないと述べていることに、注意してください、私は上記の投稿の例では、正しい形式を追加しました。

Working example

var d = data.map(function(d) { 
    return d.score.sort(function(a, b) { 
    return a.score + b.score; 
    }); 
}); 
関連する問題