zoukankan      html  css  js  c++  java
  • ES6高阶函数(filter/map/reduce)

    ES6语法
    js判断字符串是否包含在另一个字符串中
    1、旧的方式: indexOf('变量') ----> 结果为-1 代表未找到,否则就是找到了 返回下标
    2、es6新增3种方式: 返回 true或false
    1、includes('变量',搜索的位置) 表示是否找到参数变量
    2、startsWith('变量',搜索的位置) 从头部匹配
    3、endsWith('变量',搜索的位置) 从尾部匹配

    str.repeat(n) 表示将源字符串重复n次
    ‘hello’.repeat(3) ---> 'hellohellohello'
    参数如果是小数,会被取整
    参数如果是负数或者infinity,会报错

    str.padStart(最小长度,补全的字符串) 表示头部补全最小长度的字符串
    str.padEnd(最小长度,补全的字符串) 表示尾部补全最小长度的字符串
    示例:‘920312’.padEnd(10,'0') ---> '9203120000' tip:必须是字符串

    函数、

    //1、需求:筛选出数组中数字小于100的数字。
    //2、需求:将数组中的每个数字乘以3.
    //3、需求:数组中的数组汇总求和。
    let nums = [16,38,49,88,291,32,231,123,101,22]
    //旧的写法:
        let old_newnums = []    //[16, 38, 49, 88, 32, 22]
        //1、
            for (let i = 0; i < nums.length; i++) {
                if (nums[i]<100) {old_newnums.push(nums[i])}
            }
        //2、
        let old_newnums1 = []    //[48, 114, 147, 264, 96, 66]
            for (let i = 0; i < old_newnums.length; i++) {
                old_newnums1.push(old_newnums[i]*3)
            }
        //3、
        let old_newnums2 = 0    // 735
            for (let i = 0; i < old_newnums1.length; i++) {
                old_newnums2 += old_newnums1[i]
            }
    
    //新的写法: filter / map / reduce
        // filter中的回调函数有一个要求:必须返回一个bollean值
            // true : 当返回true时,函数内部会自动将这次回调的n加入到新的数组中
            // false: 当返回fasle时,函数内部会过滤掉这次的n。
            let new_nums = nums.filter(function (n) {
                return n < 100
            })
    
        // map 映射函数
            let new_nums1 = new_nums.map(function (n) {
                return n * 3
            })
    
        // reduce(func(上一次结果 初始值为默认值,数组的n),默认值=0) 对数组中所有的内容进行汇总。
            let new_nums2 = new_nums1.reduce(function (prev,n){
                return prev + n
            },0)
    
    //或者可以写成
        let new_writeNums = nums.filter(function (n){return n < 100}).map(function(n){return n * 3}).reduce(function(prev,n){return prev + n},0)
  • 相关阅读:
    FreeSWITCH一些需求应对
    CentOS 7安装Mysql并设置开机自启动
    RTP学习笔记
    SDP学习笔记
    Quartz实用二三事
    Quartz:ERROR threw an unhandled Exception
    CentOS 7一些常用配置
    Java获取音频文件(MP3)的播放时长
    使用Callable和Future接口创建线程
    join() 方法详解及应用场景
  • 原文地址:https://www.cnblogs.com/nixindecat/p/12156996.html
Copyright © 2011-2022 走看看