Как найти минимальное и максимальное значения в массиве с использованием заданной функции
Для практики программирования откройте Терминал или 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
объектов.