获得阵列中最高的3个数字?

时间:2016-07-08 21:07:02

标签: javascript jquery arrays

以下代码返回数组中的最大数字。我试图弄清楚如何从阵列中获得前三个数字并且无法弄明白。

我也想弄清楚如何用他们的分数列出相应的工作。目前,具有“您的最高得分”的H1仅显示该数字并且未通过该作业(或最高数字的var名称)。

有关如何实现这一目标的任何想法?

谢谢!

HTML:

<div>
  <h3> Job 95- <span id="score95"> </span> </h3> 
  <h3> Job 96- <span id="score96"> </span> </h3> 
  <h3> Job 97- <span id="score97"> </span> </h3> 
  <h3> Job 98- <span id="score98"> </span> </h3> 
  <h3> Job 99- <span id="score99"> </span> </h3> 
  <h3> Job 100- <span id="score100"> </span> </h3> 
  <h1> Your highest score was: <span id="highest"></span></h1>
</div> 

JS

var job95 = 100;
var job96 = 100;
var job97 = 100;
var job98 = 100;
var job99 = 100;
var job100 = 100;

$( "#no15" ).click(function() {
   console.log('clicked15')
   job95 += 10;
   job96 += 20;
   job97 += 30;
   job98 += 40;
   job99 += 50;
   job100 += 60;
   $('#score95').html(job95);
   $('#score96').html(job96);
   $('#score97').html(job97);
   $('#score98').html(job98);
   $('#score99').html(job99);
   $('#score100').html(job100);

   var numArray = [job95,job96, job97, job98, job99,job100]
   $('#highest').html(Math.max.apply(Math,numArray));
});

1 个答案:

答案 0 :(得分:7)

从最低到最高排序然后切片。例如:

var arr = [1, 3, 2, 1, 5, 6, 3];
//Sort the array from lowest to highest
//Thanks to Charlietfl, I forgot to sort it numerically
arr.sort(function(a, b) {
  return a - b;
});
//Get the highest 3
var top3Arr = arr.slice(-3);
console.log(top3Arr)


//This is an array, so if you want each number individually just access the array

var highest = top3Arr[2];
var secondHighest = top3Arr[1];
var thirdHighest = top3Arr[0];