JavaScript高阶函数的使用

filter()函数的使用

filter()函数中回调函数要求:必须返回一个boolean

  • true:当返回为true时,函数内部会自动将这次回调的 n 加入到新的数组中
  • false:当返回false时,函数内部会过滤掉这次的 n
const nums = [10, 12, 20, 50, 60, 120, 420, 321];

let newNums = nums.filter(function (n) {
  return n < 100;
})
console.log(newNums);

在这里插入图片描述

map()函数的使用

let new2Nums = newNums.map(function (n) {
  return n * 2;
})
console.log(new2Nums);

在这里插入图片描述

reduce()函数的使用

对数组中所有内容进行汇总。传入两个参数,第二个参数0是对prevalue的初始化

let total = new2Nums.reduce(function (prevalue, n) {
  return prevalue + n;
}, 0)
console.log(total);
  • 第一次:prevalue = 0(初始化的值), n = 20(new2Nums数组中的值)
  • 第二次:prevalue = 20(第一次调用返回的值), n = 24(new2Nums数组中的值)
  • 第三次:prevalue = 44(第二次调用返回的值), n = 40(new2Nums数组中的值)
  • ······

在这里插入图片描述

三者结合使用

let totals = nums.filter(function (n) {
  return n < 100;
}).map(function (n) {
  return n * 2;
}).reduce(function (prevalue, n) {
  return prevalue + n;
}, 0);

console.log("结合的写法", totals);

在这里插入图片描述

更简单的写法

let totals2 = nums.filter(n => n < 100).map(n => n * 2).reduce((prevalue, n) => prevalue + n);
console.log("更简单的写法", totals2);

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_43207025/article/details/107217315