对一个对象数组内的数组进行排序

时间:2016-05-10 01:14:33

标签: javascript arrays sorting dictionary

你好,我有一个这个表格的数组,我正在我的流星模板上显示。

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上的代码进行排序。

2 个答案:

答案 0 :(得分: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 :(得分:0)

尝试使用排序方法:

另请注意,正如评论中提到的JS无效,我在上面发布的示例中添加了正确的格式。

Working example

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