Найдите второе по величине число в JavaScript

Чтобы найти второе по величине число в JavaScript, вы можете использовать различные методы. Вот несколько подходов:

Метод 1: сортировка
Вы можете отсортировать массив чисел в порядке убывания, а затем получить второй элемент.

function findSecondLargest(numbers) {
  numbers.sort(function(a, b) {
    return b - a;
  });
  return numbers[1];
}
var numbers = [5, 10, 3, 8, 1];
var secondLargest = findSecondLargest(numbers);
console.log(secondLargest); // Output: 8

Метод 2: цикл
Вы можете перебирать массив и отслеживать самые большие и вторые по величине числа.

function findSecondLargest(numbers) {
  var largest = -Infinity;
  var secondLargest = -Infinity;
  for (var i = 0; i < numbers.length; i++) {
    if (numbers[i] > largest) {
      secondLargest = largest;
      largest = numbers[i];
    } else if (numbers[i] > secondLargest && numbers[i] < largest) {
      secondLargest = numbers[i];
    }
  }
  return secondLargest;
}
var numbers = [5, 10, 3, 8, 1];
var secondLargest = findSecondLargest(numbers);
console.log(secondLargest); // Output: 8

Метод 3: использование Math.max() и оператора распространения
Вы можете использовать функцию Math.max() вместе с оператором распространения (…), чтобы найти максимальное значение в массиве. Удалив наибольшее число из массива, вы сможете снова найти максимум, что даст вам второе по величине число.

function findSecondLargest(numbers) {
  var largest = Math.max(...numbers);
  numbers = numbers.filter(function(num) {
    return num !== largest;
  });
  return Math.max(...numbers);
}
var numbers = [5, 10, 3, 8, 1];
var secondLargest = findSecondLargest(numbers);
console.log(secondLargest); // Output: 8