小程序js中取出数组中最大的两个数

    score: [
 { 'name': '学生1', 'score': 96 },
{ 'name': '学生2', 'score': 95 },
{ 'name': '学生3', 'score': 77 },
{ 'name': '学生4', 'score': 82 },
{ 'name': '学生5', 'score': 47 },
{ 'name': '学生6', 'score': 96 },
{ 'name': '学生7', 'score': 65 },
{ 'name': '学生8', 'score': 70 }
]

如何建立函数将数组中分数前两名(包括同分)取出,请具体谢谢

 score = [
 { 'name': '学生1', 'score': 96 },
{ 'name': '学生2', 'score': 95 },
{ 'name': '学生3', 'score': 77 },
{ 'name': '学生4', 'score': 82 },
{ 'name': '学生5', 'score': 47 },
{ 'name': '学生6', 'score': 96 },
{ 'name': '学生7', 'score': 65 },
{ 'name': '学生8', 'score': 70 }
]
function order(arr) {
  // 这里可以写一些判断arr是数组的条件
    if(!Array.isArray(arr)) return 
   return arr.sort(function (a, b) {
              return b.score - a.score
          })}
    var result = order(score).slice(0,2) // result的数组就是两个得分高的数

data.score.sort(function (x, y) { return x.score - y.score })

var data = {
score: [
{ 'name': '学生1', 'score': 96 },
{ 'name': '学生2', 'score': 95 },
{ 'name': '学生3', 'score': 77 },
{ 'name': '学生4', 'score': 82 },
{ 'name': '学生5', 'score': 47 },
{ 'name': '学生6', 'score': 96 },
{ 'name': '学生7', 'score': 65 },
{ 'name': '学生8', 'score': 70 }
]
}
data.score.sort(function (a, b) { return b.score - a.score })
alert(data.score[0].name)
alert(data.score[1].name)

var data = {
score: [
{ 'name': '学生1', 'score': 96 },
{ 'name': '学生2', 'score': 95 },
{ 'name': '学生3', 'score': 77 },
{ 'name': '学生4', 'score': 82 },
{ 'name': '学生5', 'score': 47 },
{ 'name': '学生6', 'score': 96 },
{ 'name': '学生7', 'score': 65 },
{ 'name': '学生8', 'score': 70 }
]
}
data.score.sort(function (a, b) { return b.score - a.score })
alert(data.score[0].name)
alert(data.score[1].name)

var score = [{ 'name': '学生1', 'score': 96 },
{ 'name': '学生2', 'score': 95 },
{ 'name': '学生3', 'score': 77 },
{ 'name': '学生4', 'score': 82 },
{ 'name': '学生5', 'score': 47 },
{ 'name': '学生6', 'score': 96 },
{ 'name': '学生7', 'score': 65 },
{ 'name': '学生8', 'score': 70 }];
score.sort(function(o1,o2){
return o1.score==o2.score?0:o1.score>o2.score?-1:1;
});
var temp;
var sortNum = 2;//前2名(包括同分)
var arr2 = [];//前2名对象数组
for(var i in score){
if(i==0)temp=score[i].score;
if(score[i].score == temp){
arr2[i]=score[i];
}else{
if(sortNum==1)break;
sortNum--;
temp=score[i].score;
arr2[i]=score[i];
}
}
//打印测试
for(var i in arr2){
alert("name:"+arr2[i].name+",score:"+arr2[i].score);
}

通过排序来实现这一功能。。。。

sort降序排下取前2个。。


    var data = {
        score: [
     { 'name': '学生1', 'score': 96 },
    { 'name': '学生2', 'score': 95 },
    { 'name': '学生3', 'score': 77 },
    { 'name': '学生4', 'score': 82 },
    { 'name': '学生5', 'score': 47 },
    { 'name': '学生6', 'score': 96 },
    { 'name': '学生7', 'score': 65 },
    { 'name': '学生8', 'score': 70 }
        ]
    }
    data.score.sort(function (a, b) { return b.score - a.score })
    alert(data.score[0].name)
    alert(data.score[1].name)