Я пытаюсь получить максимальную частоту сердечных сокращений за несколько лет, реализовав несколько функций Функция arrayCalc использует цикл for для пустого массива с именем "arrRes", чтобы выдвинуть новое значение. В то же время функция calcAge рассчитывает возраст человека по текущему году. Вместо цикла for я хочу использовать функции .map и arrow внутри функции arrayCalc, которой переданы некоторые аргументы. Я не знаю, куда идти по этому поводу.
Я пытался использовать такие ресурсы, как веб-документ MDN, чтобы уточнить, что такое карта и стрелки. Как только я узнал его синтаксис и его реализацию, я начал оборачивать .map и функцию стрелки в постоянную переменную с именем "arrRes". По сути, я пытаюсь воспроизвести тот же результат, что и в «старом» arrayCalc.
const years = [1990, 1965, 1937, 2005, 1998];
// The function I'm trying to replicate
function arrayCalc(arr, fn) {
const arrRes = [];
for (let i = 0; i < arr.length; i++) {
arrRes.push(fn(arr[i]));
}
return arrRes;
}
// My attempt to shorten the arrayCalc function using .map and the arrow
/* function arrayCalc(arr, fn){
const arrRes = arr.map(arry => arry);
} */
function calcAge(ex) {
return new Date().getFullYear() - ex;
}
function maxHeartRate(ex) {
const result_2 = Math.round(206.9 - (0.67 * ex))
return (ex >= 18 && ex <= 81 ? result_2 : -1)
}
const ages = arrayCalc(years, calcAge);
const heartRate = arrayCalc(ages, maxHeartRate);
console.log(ages);
console.log(heartRate);
Мой вывод должен быть // [29, 54, 82, 14, 21]. Но консоль выдает мне ошибку «Uncaught TypeError: Невозможно прочитать свойство 'map' of undefined". Очевидно, что код, который я пытаюсь реализовать, закомментирован для получения результата. Любая помощь приветствуется.