zoukankan      html  css  js  c++  java
  • 24.filter~map~reduce高阶函数

    <script>
            // 编程范式: 命令式编程 / 声明式编程
            // 编程范式: 面向对象编程(第一公民:对象) / 函数式编程(第一公民:函数)
            // filter / map / reduce
    
            // filter中的回调函数有一个要求:必须返回一个布尔值
            // true: 当返回true时  函数内部自动将这次回调的 n 加到新的数组中
            // false:当返回false时  函数内部会过滤这次的 n
            // 1. 找出数组中小于50的元素
    
            const nums = [45, 7, 44, 51, 875, 45, 38, 77];
            // let newNums = [];
            // let minNums = [];
            // for (let i of nums) {      //用for...of遍历
            //     if (i > 50) {
            //         newNums.push(i);
            //     }
            // }
    
            let newNums = nums.filter(function(n) {
                return n < 50;
            });
            console.log(newNums); //   [45, 7, 44, 45, 38]        用filter筛选    返回true就添加到新的数组中
    
    
            // 2.将小于50的元素*2
    
            // for (let i of nums) {
            //     if (i < 50) {
            //         minNums.push(i * 2)
            //     }
            // }
            // console.log(minNums);
    
            // 用map找出小于50的元素 *2
            let minNums = newNums.map(function(n) { // 用map 可以操作之前的数组元素 进行计算  返回一个新的数组
                return n * 2;
            })
            console.log(minNums);
    
            // 3.将minNums的每一个数组元素 相加
            // let max = 0;
            // for (let i of minNums) {
            //     max += i;
            // }
            // console.log(max);
    
            // 4.reduce(回调函数,初始值0) 函数的使用
            // reduce的作用是对函数的所有参数进行汇总
    
            let arr = [10, 20, 30, 40, 50, 60];
            let newArr = arr.reduce(function(preValue, n) { // 回调函数里面第一个值是上一轮遍历返回的值 n是遍历当前的数组元素
                return preValue + n;
                // 第一轮遍历 初始值是 0 + 遍历的第一个元素 10 = 10
                // 第二轮遍历 上一轮返回 10 + 遍历的第二个元素 20 = 30
                // 以此类推
            }, 0)
            console.log(newArr);
        </script>
  • 相关阅读:
    存储引擎的优缺点及增删改查基本操作
    安装Mariadb
    Mysql 入门概念
    Nginx语法着色
    find用法,文件压缩和lsof和cpio
    软件包管理
    Django 生成六位随机图片验证码
    Django自定义过滤器和自定义标签
    Django零碎知识点
    jQuery实现淡入淡出样式轮播
  • 原文地址:https://www.cnblogs.com/yanglaxue/p/14205766.html
Copyright © 2011-2022 走看看