如何在另一个函数内使用map函数和arrow函数?

Elgnis3901

我正在尝试通过实现一些功能来获取给定年份的最大心率。arrayCalc函数在名为“ arrRes”的空数组上使用for循环来推送新值。同时,calcAge函数根据当前年份计算一个人的年龄。我希望使用传递了一些参数的arrayCalc函数内部的.map和arrow函数,而不是for循环。我不知道该去哪里。

我尝试使用MDN网络文档等资源来阐明.map和arrow功能。一旦知道了它的语法及其实现,我便开始将.map和arrow函数包装到一个名为“ 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]。但是控制台给了我一个错误“未捕获的TypeError:无法读取未定义的属性'map'”。显然,我尝试实现的代码被注释掉以产生结果。任何帮助表示赞赏。

分数

您缺少从函数中返回值的方法,并且还应该从执行fn函数中返回值,而不是arr

function arrayCalc(arr, fn){
  const arrRes = arr.map(a => fn(a)); // and not .map(arr => arr)
  return arrRes; // missing return statement
}

工作示例

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(a => fn(a));
  return arrRes;
  // OR
  // return arr.map(fn);
}


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);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在另一个函数的函数中使用一个函数

如何在JS中的另一个函数中导入和使用函数

如何在python中的另一个函数中使用一个函数

如何在另一个函数中的一个函数中使用值

我如何在另一个函数中使用一个函数

如何在另一个函数中使用一个函数的输出?

如何在“ pytest”中使用另一个文件中的函数和类?

如何在另一个函数中使用来自另一个函数的变量?

如何在另一个函数中使用函数变量值?

我如何在反应中调用另一个函数已经使用的函数

如何在R中的另一个函数中使用`sink`函数?

如何在另一个函数中定义的函数中使用变量?

如何在另一个函数的for循环中使用函数到python中

如何在函数内定义变量并使用它来调用另一个函数

如何在另一个函数上使用错误处理函数?

如何在Lambda体内使用的另一个函数中调用Lambda中的函数

如何在javascript中的另一个函数中使用函数作为对象的属性

如何在Javascript中创建一个继承另一个函数的属性和方法的函数?

如何在Python中从另一个函数调用一个函数中的一个函数?

如何在调用另一个函数后强制一个函数退出?

如何在python中将一个函数传递给另一个函数

Python如何在另一个函数中模拟一个函数

如何在调用另一个函数之前执行一个函数

如何在另一个函数内部调用一个函数?

如何在另一个函数nodejs中模拟一个函数

如何在另一个函数中调用一个函数的输出?

如何在另一个函数中调用一个reduce函数

如何在Angular的另一个函数中调用一个函数

如何在另一个函数中返回一个函数