Как найти максимальное значение массива на основе функции
Для нахождения максимального значения массива на основе функции следуйте этим шагам:
- Откройте Терминал/SSH и введите
node
, чтобы начать практиковаться в написании кода.
- Используйте
Array.prototype.map()
, чтобы сопоставить каждый элемент массива со значением, возвращаемым предоставленной функцией fn
.
- Используйте
Math.max()
, чтобы получить максимальное значение сопоставленного массива.
Вот пример кода, который реализует вышеперечисленные шаги:
const maxBy = (arr, fn) =>
Math.max(...arr.map(typeof fn === "function" ? fn : (val) => val[fn]));
Для использования функции maxBy
передайте массив и функцию, которая должна быть использована для сопоставления каждого элемента со значением. Вы можете либо напрямую передать функцию, либо строку, представляющую ключ, который должен быть использован для доступа к значению в каждом объекте массива.
Вот некоторые примеры вызовов функции maxBy
:
maxBy([{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }], (x) => x.n); // возвращает 8
maxBy([{ n: 4 }, { n: 2 }, { n: 8 }, { n: 6 }], "n"); // возвращает 8