Минимальные и максимальные значения массива

Beginner

This tutorial is from open-source community. Access the source code

Введение

В этом практическом занятии мы изучим, как найти минимальные и максимальные значения в массиве на основе заданной функции. Мы будем использовать метод reduce(), комбинируя его с функцией-компаратором, чтобы вернуть соответствующий элемент в массиве. В конце практического занятия вы хорошо освоите методы поиска минимальных и максимальных значений в массиве на основе собственных функций-компараторов.

Как найти минимальное и максимальное значения в массиве с использованием заданной функции

Для практики программирования откройте Терминал или SSH и введите node.

Вот функция, которая возвращает минимальное и максимальное значения в массиве на основе заданной функции, которая устанавливает правило сравнения:

const reduceWhich = (arr, comparator = (a, b) => a - b) =>
  arr.reduce((a, b) => (comparator(a, b) >= 0 ? b : a));

Для использования этой функции следуйте шагам:

  1. Вызовите reduceWhich с массивом, который вы хотите обработать, и необязательной функцией comparator.
  2. Функция reduceWhich будет использовать Array.prototype.reduce(), комбинируя его с функцией comparator, чтобы вернуть соответствующий элемент в массиве.
  3. Если вы опустите второй аргумент (comparator), будет использована стандартная функция, которая возвращает минимальный элемент в массиве.

Вот несколько примеров использования reduceWhich:

reduceWhich([1, 3, 2]); // 1
reduceWhich([1, 3, 2], (a, b) => b - a); // 3
reduceWhich(
  [
    { name: "Tom", age: 12 },
    { name: "Jack", age: 18 },
    { name: "Lucy", age: 9 }
  ],
  (a, b) => a.age - b.age
); // {name: 'Lucy', age: 9}

В примерах выше первый вызов reduceWhich возвращает минимальное значение массива [1, 3, 2], которое равно 1. Второй вызов возвращает максимальное значение того же массива на основе функции comparator, которая изменяет порядок сравнения. Третий вызов возвращает объект в массиве, у которого минимальное значение свойства age, на основе функции comparator, которая сравнивает свойства age объектов.

Резюме

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