2016-05-10 180 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鍵,這是一個降序排列的對象數組。使用text_name:'My life'中的示例數據,我希望首先顯示Abu分數,因爲他得分最高。

我已嘗試使用此鏈接上發現的代碼排序Sorting an array of JavaScript objects

+1

這不是有效的JavaScript。請解決,所以我們知道你的意思(是否得分:[...'?)另外,如果你已經嘗試過,發佈出了什麼問題。 *還*,爲什麼這個標籤[標籤:流星]? – Amadan

+0

這不是有效的JavaScript。在第一個'score:30}'後面缺少一個逗號。 – Pang

回答

1

如果我理解正確,你正在試圖做的是有自身內各分類列表。

因此,這裏是你需要做的:

// 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

嘗試使用一種排序方法:

還要注意,由於意見已提到,是無效的JS,我加入上面張貼的例子正確的格式。

Working example

var d = data.map(function(d) { 
    return d.score.sort(function(a, b) { 
    return a.score + b.score; 
    }); 
});