js数组 输出前三大的值

var arr = [6, 10, 9, 3, 8, 15, 11, 16, 14, 19, 1, 7, 2, 18, 17];
// 求最大值
var fMax = arr[0];
for (let i = 1; i < arr.length; i++) {
  if (fMax < arr[i]) {
    fMax = arr[i];
  }
}
console.log("最大值为:" + fMax);
// 求次大值
var sMax = arr[0];
for (let i = 1; i < arr.length; i++) {
  if (sMax < arr[i] && fMax > arr[i]) {
    sMax = arr[i];
  }
}
console.log("次大值为:" + sMax);
// 求第三大值
var tMax = arr[0];
for (let i = 1; i < arr.length; i++) {
  if (tMax < arr[i] && sMax > arr[i]) {
    tMax = arr[i];
  }
}
console.log("第三大值为:" + tMax);

但是如果数组中有两个相同的最大值,这个就行不通了呀

var arr = [6, 10, 9, 3, 8, 15, 11, 16, 18, 19, 1, 7, 2, 18, 18];
        arr.sort((a, b) => {return b - a;});
        console.log(arr[0], arr[1], arr[2])

找完最大值后再看看有几个相等的,然后再找剩下的

排完序,取数组前三位。可以做个判断前三位有相等的就往后取