2016-05-10 124 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; 
    }); 
});