zoukankan      html  css  js  c++  java
  • js高阶函数filter、map、reduce

     1 // 高阶函数 filter/map/reduce
     2 
     3 // filter中的回调函数有一个要求:必须返回一个boolean值,
     4 // 当返回true时,函数内部会自动将这次回调的 n 加入到新的数组中
     5 // 当返回false时,函数内部会自动过滤掉这次的 n
     6 const nums=[10,20,60,94,348,57,24,674,645,44,4]
     7 let newNums = nums.filter(function (n){
     8   return n<30
     9 })
    10 console.log("filter",newNums);
    11 
    12 //map
    13 let newNums2 = newNums.map(function (n) {
    14   return n * 2
    15 })
    16 console.log("map",newNums2);
    17 
    18 // reduce作用,对数组中的所有内容进行汇总 m赋值给prevalue,每次preValue为上次的preValue+n的值
    19 let m=0;
    20 let total = newNums2.reduce(function (preValue,n) {
    21   return preValue + n
    22 },m)
    23 //newNums2=[20,40,48,8]有四个值,那就循环四次
    24 // 第一次 :preValue=0    n=20
    25 // 第二次 :preValue=20   n=40
    26 // 第三次 :preValue=60   n=48
    27 // 第四次 :preValue=108   n=8
    28 // 第五次 :preValue=116
    29 // 最后返回116赋值给 total
    30 console.log(total);
    31 console.log("*********高阶写法***************");
    32 
    33 let total2 = nums.filter(function (n) {
    34   return n<30
    35 }).map(function (n) {
    36   return n*2
    37 }).reduce(function (preValue,n) {
    38   return preValue + n
    39 },0)
    40 
    41 console.log(total2)
    42 
    43 console.log("更简单写法")
    44 let total3 = nums.filter(n => n < 30).map(n => n * 2).reduce((pre, n) => pre + n);
    45 console.log(total3)
  • 相关阅读:
    gdbinit理解
    debug套路
    node 版本升级
    工作方式
    vscode 插件编写
    函数闭包与装饰器
    高阶函数与递归
    函数嵌套及作用域
    函数
    文件处理
  • 原文地址:https://www.cnblogs.com/zwnsyw/p/12299889.html
Copyright © 2011-2022 走看看