Как найти минимальное и максимальное значения в массиве с использованием заданной функции
Для практики программирования откройте Терминал или SSH и введите node.
Вот функция, которая возвращает минимальное и максимальное значения в массиве на основе заданной функции, которая устанавливает правило сравнения:
const reduceWhich = (arr, comparator = (a, b) => a - b) =>
arr.reduce((a, b) => (comparator(a, b) >= 0 ? b : a));
Для использования этой функции следуйте шагам:
- Вызовите
reduceWhich с массивом, который вы хотите обработать, и необязательной функцией comparator.
- Функция
reduceWhich будет использовать Array.prototype.reduce(), комбинируя его с функцией comparator, чтобы вернуть соответствующий элемент в массиве.
- Если вы опустите второй аргумент (
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 объектов.