代码之家  ›  专栏  ›  技术社区  ›  AndrewLeonardi

是否显示对象的多个部分?

  •  2
  • AndrewLeonardi  · 技术社区  · 9 年前

    此对象给出分数和作业名称:

       var job0= {
                   score: 100,
                   name: "Project Manager"
                 }
    
    
    $('#scoreTest').text(job0.score +'   ' + job0.name)
    

    我试图让96-100号工作也成为上面提到的工作名称和分数的对象。问题是,我无法通过数组传递作业名称,以利用上述目标策略找到3个最高分数。我只能通过#分。我将如何传递作业名称,以便#highest1、#Highest2、#Hight3也显示作业名称?

    var job95 = 100;
        var job96 = 100;
        var job97 = 100;
        var job98 = 100;
        var job99 = 100;
        var job100 = 100;
    
    
    var numArray = [job95,job96, job97, job98, job99,job100]
    $('#highest').html(Math.max.apply(Math,numArray));
    
    numArray.sort(function(a, b) {
      return a - b;
    });
    //Get the highest 3
    var top3Arr = numArray.slice(-3);
    
    var firsthighest = top3Arr[2] ;
    var secondHighest = top3Arr[1];
    var thirdHighest = top3Arr[0];
    
    $('#highest1').html(firsthighest +' '+ job0.name)
    $('#highest2').html(secondHighest)
    $('#highest3').html(thirdHighest)
    });
    
    1 回复  |  直到 9 年前
        1
  •  3
  •   Nina Scholz    9 年前

    可以对对象使用直接数组。

    var jobs = [{
            score: 10,
            name: "Project Manager"
        }, {
            score: 20,
            name: "Team Leader"
        }, {
            score: 42,
            name: "Worker"
        }, {
            score: 99,
            name: "Worker"
        }, {
            score: 100,
            name: "Worker"
        }],
        top3;
    
    jobs.sort(function (a, b) { return b.score - a.score; });
    top3 = jobs.slice(0, 3);
    
    console.log(top3);