Эффективные способы найти наименьшее число в массиве JavaScript

В JavaScript поиск наименьшего числа в массиве — обычная задача, для решения которой можно использовать различные методы. В этой статье мы рассмотрим несколько подходов к достижению этой цели, приведя примеры кода для каждого метода. Поняв эти методы, вы будете хорошо подготовлены к реализации подобных сценариев в своих проектах JavaScript.

Методы поиска наименьшего числа в массиве:

  1. Использование цикла.
    Один простой метод — перебирать массив с помощью цикла и отслеживать наименьшее встреченное число.
function findSmallestNumber(array) {
  let smallest = array[0];
  for (let i = 1; i < array.length; i++) {
    if (array[i] < smallest) {
      smallest = array[i];
    }
  }
  return smallest;
}
const numbers = [5, 2, 8, 1, 10];
const smallestNumber = findSmallestNumber(numbers);
console.log(smallestNumber); // Output: 1

<ол старт="2">

  • Использование функции Math.min():
    Функция JavaScript Math.min() может использоваться для поиска наименьшего числа в массиве. Однако для передачи элементов массива в качестве аргументов требуется небольшая дополнительная манипуляция с использованием оператора расширения (…).
  • const numbers = [5, 2, 8, 1, 10];
    const smallestNumber = Math.min(...numbers);
    console.log(smallestNumber); // Output: 1
    1. Использование метода Array.reduce():
      Метод Array.reduce() позволяет нам свести массив к одному значению. В этом случае мы можем сравнить каждый элемент с текущим минимальным значением в процессе сокращения.
    const numbers = [5, 2, 8, 1, 10];
    const smallestNumber = numbers.reduce((min, current) => {
      return current < min ? current : min;
    });
    console.log(smallestNumber); // Output: 1
    1. Используя оператор расширения и функцию Math.min():
      Подобно методу 2, мы можем объединить оператор распространения (…) с Math.min(), чтобы найти наименьшее число в массиве.
    2. >

    const numbers = [5, 2, 8, 1, 10];
    const smallestNumber = Math.min(...numbers);
    console.log(smallestNumber); // Output: 1
    1. Использование оператора расширения ES6 и функции Math.min() (для больших массивов):
      Для очень больших массивов оператор расширения может превышать ограничение длины аргумента механизма JavaScript. В таких случаях мы можем использовать обходной путь, разбив массив на более мелкие фрагменты.
    const numbers = [5, 2, 8, 1, 10];
    const chunkSize = 1000;
    const chunks = [];
    while (numbers.length) {
      chunks.push(numbers.splice(0, chunkSize));
    }
    const smallestNumber = Math.min(...[].concat(...chunks));
    console.log(smallestNumber); // Output: 1