美文网首页
数组的高阶函数

数组的高阶函数

作者: BJ呀呀呀 | 来源:发表于2021-05-27 10:26 被阅读0次

    什么是高阶函数?

        //1.把一个函数当做另外一个函数的参数,也是高阶函数,同时还是回调函数
        //2.一个函数,内部返回外面一个函数,也是高阶函数   闭包
    

    //some 如果有一个条件满足,就返回true
    // every 所有的条件满足才返回true;
    // filter 过滤
    // forEach 都能做遍历,没有返回值
    // map 返回一个新的数组 ,更加注重返回结果

    some 如果有一个条件满足,就返回true

            var arr = [11, 22, 33, 44, 55];
            //el,每一个成员
            //index,每个成员的下标
            //aaa 原来的数组
    
            //默认返回false
            var res = arr.some(function (el, index, aaa) {
                return el == 33
            })
            console.log(res);//true
    

    every 所有的条件满足才返回true;

            //el,每一个成员
            //index,每个成员的下标
            //aaa 原来的数组
            var arr = [11, 22, 33, 44, 55];
            var res = arr.every(function (el, index, aaa) {
                return el > 30
            })
            console.log(res);//false
    

    filter 过滤 返回一个新的数组

            //找出所有大于20的,并放到一个新的数组里
    
            var arr = [11, 22, 33, 44, 55]; //大于20
    
            var newArr = arr.filter(function (el) {
                return el > 20
            })
    
            console.log(newArr);//[22, 33, 44, 55]
    
            // var newArr = [];
            // for (var i = 0; i < arr.length; i++) {
            //     if (arr[i] > 20) {
            //         newArr.push(arr[i]);
            //     }
            // }
    

    forEach 纯粹只做遍历 不能被中断 想中断可以用异常处理 没有返回值

              // for 可以用return , break 中断
            var arr = [11, 22, 33, 44, 55];
            var res = arr.forEach(function (el, index, aaa) {
                console.log(el, index, aaa);
            })
    
            console.log(res);//undefined
    

    map 也是做遍历,有返回值,返回是新数组

            var arr = [11, 22, 33, 44, 55];
            //请将每个元素放大10倍,得到一个新数组
            var arr1 = arr.map(function (el, index) {
                return el * 10
            })
            console.log(arr1);
            console.log(arr);
    

    reduce 累加器

    //pre 初始值
    //cur 
    //index 下标
    //aaa 原数组
    // 第二个参数100,就是给pre设置初始值,第二个参数没写的话,这里初始值就是11 
    //return 没有返回值的话 ,第二次开始pre 的返回值为undefined
    var arr = [11, 22, 33, 44, 55];
    arr.reduce=(function(pre,cur,index,aaa){
    console.log(pre,cur,index);
    return index
    } ,100)
    
    

    相关文章

      网友评论

          本文标题:数组的高阶函数

          本文链接:https://www.haomeiwen.com/subject/kqmekltx.html