zoukankan      html  css  js  c++  java
  • JS的高阶函数

    JavaScript的函数其实都指向某个变量。既然变量可以指向函数,函数的参数能接收变量,那么一个函数就可以接收另一个函数作为参数,这种函数就称之为高阶函数。

    这就是最简单的高阶函数啦

     function high( a, b, f ){
       return f(a) + f(b)
     }
    

      之前遇到一个面试题是用高阶函数写一个jq里的$each方法。

    let arr=[1,2,3,4,5];
         function fn1(a,b) {
            return b(a)
         }
         function fn2(e) {
            for(let i=0;i<e.length;i++){
              console.log(i,e[i])
            }
         }
        fn1(arr,fn2)
    

    然后前面我引入的连接里有写一些高阶函数的方法,我们来一一介绍使用一下~
    1.map()
    由于map()方法定义在JavaScript的Array中,我们调用Array的map()方法,传入我们自己的函数,就得到了一个新的Array作为结果。

    let arr =[1,2,3,4,5];
        arr.map(item =>{
          console.log(item)
        })
     //1,2,3,4,5
    
    
     let arr =[1,2,3,4,5];
        const arr2 = arr.map(x =>++x)
        console.log(arr2)
    
    // 2,3,4,5,6
    

      

    2.filter

    filter也是一个常用的操作,它用于把Array的某些元素过滤掉,然后返回剩下的元素。

    和map()类似,Array的filter()也接收一个函数。和map()不同的是,filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。

    let arr =[1,2,3,4,5];
        const arr2 = arr.filter(function(x){
                return x % 2 !== 0;
            } )
       console.log(arr2)
    
    //1,3,5
    

      3.sort
    这个是个排序的方法,涉及到各类排序的问题,可以等等等我啥时候想研究了再写一篇文章来研究一下…

    var arr = [10, 20, 1, 2];
    arr.sort(function (x, y) {
        if (x < y) {
            return -1;
        }
        if (x > y) {
            return 1;
        }
        return 0;
    });
    console.log(arr); // [1, 2, 10, 20]
    

     

    4.every
    every()方法可以判断数组的所有元素是否满足测试条件。

    5.find
    find()方法用于查找符合条件的第一个元素,如果找到了,返回这个元素,否则,返回undefined

    6.findIndex
    findIndex()和find()类似,也是查找符合条件的第一个元素,不同之处在于findIndex()会返回这个元素的索引,如果没有找到,返回-1

    7.forEach
    forEach()和map()类似,它也把每个元素依次作用于传入的函数,但不会返回新的数组。forEach()常用于遍历数组,因此,传入的函数不需要返回值

  • 相关阅读:
    linux 内网环境搭建docker
    docker 容器迁移
    linux 按照进程号查看端口号
    docker 开机自启动
    0_campgrounds CRUD
    Delete Product
    new-Category-default category show
    Edit
    Mongoose with express-1
    Mongoose With Express _0: Basic Setup
  • 原文地址:https://www.cnblogs.com/JiAyInNnNn/p/11511424.html
Copyright © 2011-2022 走看看