🟨 JavaScript
Лёгкая
🕐 10 мин

Максимальное и минимальное значение

Цель: создать функцию minMax(arr), которая возвращает объект с минимальным и максимальным значением из массива.

💡 Подсказка решения
  • Используйте встроенные функции Math.min и Math.max
  • Либо один проход по массиву, сравнивая значения элементов
👀 Решение #1 (один проход)
/**
 * minMax(arr): возвращает объект с минимальным и максимальным значением массива.
 * Примеры:
 *   minMax([1, 2, 3]) -> { min: 1, max: 3 }
 *   minMax([-5, 0, 10]) -> { min: -5, max: 10 }
 * @param {number[]} arr — входной массив чисел
 * @returns {{ min: number, max: number }}
 */
function minMax(arr) {
  let min = arr[0]; // Инициализируем минимум первым элементом
  let max = arr[0]; // Инициализируем максимум первым элементом
  
  // Проходим по массиву начиная со второго элемента
  for (let i = 1; i < arr.length; i++) {
    if (arr[i] < min) min = arr[i]; // Обновляем минимум при необходимости
    if (arr[i] > max) max = arr[i]; // Обновляем максимум при необходимости
  }
  
  return { min, max }; // Возвращаем результат в виде объекта
}

Почему именно так:

  • Оптимально по памяти и времени — только один проход по массиву.
👀 Решение #2 (Math.min / Math.max)
function minMax(arr) {
  return {
    min: Math.min(...arr),
    max: Math.max(...arr)
  };
}

Почему именно так:

  • Коротко и понятно.
  • Использует стандартные методы JavaScript.
  • При больших массивах (например, 100 000+ элементов) может быть медленнее, чем цикл.
👀 Решение #3 (reduce)
function minMax(arr) {
  return arr.reduce((acc, val) => {
    if (val < acc.min) acc.min = val;
    if (val > acc.max) acc.max = val;
    return acc;
  }, { min: arr[0], max: arr[0] });
}

Почему именно так:

  • Функциональный стиль с reduce
  • Подходит, если вы предпочитаете работать с итераторами.

Описание задачи

Напишите функцию minMax, которая возвращает объект с минимальным и максимальным значением из массива.

Примеры использования

minMax([1, 2, 3]); // { min: 1, max: 3 }
minMax([-5, 0, 10]); // { min: -5, max: 10 }

Требования

  • Функция должна называться minMax
  • Возвращать объект с ключами min и max
  • Работать для любых чисел, включая отрицательные
  • Не изменять входной массив

🧑‍💻 Это не баг! Это фича!

Редактор кода намеренно скрыт на мобильном.

Поверь, так лучше: я оберегаю тебя от искушения писать код в неидеальных условиях. Маленький экран и виртуальная клавиатура — не лучшие помощники для программиста.

📖 Сейчас: Изучи задачу, продумай решение. Действуй как стратег.

💻 Потом: Сядь за компьютер, открой сайт и реализуй все идеи с комфортом. Действуй как код-джедай!