我正在尝试执行以下代码:

function oldestAges(ages){
    if (ages == []){
      return [0,0];
    }else{
      var max = Math.max.apply(null, ages);
              ages.splice(ages.indexOf(max), 1);
      var max2 = Math.max.apply(null, ages);
      return [max2,max];
  }
}


但是,将[]作为年龄进行测试时,预期值为'[0,0]',而是:'[-Infinity,-Infinity]'

此外,有没有更简单的方法来完成相同的任务?我问,因为使用R可以以更少的行数获得相同的结果。我对JavaScript仍然不满意。

最佳答案

一种简单的方法(不确定最佳方法)来实现此目的:



const input = [5, 150, 2, 8, 58, 4];

const result = input.sort((x, y) => y - x).slice(0, 2);

console.log(result);

关于javascript - 使用javascript获取数组的第一和第二最高值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/52598471/

10-10 22:16