【前端】javascript函数

1、关于函数参数——ES6新特性rest

rest以类似数组的方式将函数的参数保存下来

    function eleDis(...rest) {
        for (var i=0;i<rest.length;i++) {
            alert(rest[i]);
        }
    }
    eleDis(1,2,[3,4,5]);

eleDis函数会打印出每个实参的值。

对js而言,它是允许传入任意个参数的,即使调用的实参比形参的数量还多

2、高阶函数

即可以接收一个函数作为它的参数的函数

常用的有map、reduce、filter、sort

map:我理解就是对一个数组中每个元素做操作,比如:

var str = [1,2,3];
    var strNew = str.map(
        (x)=>{
            return ++x;
        }
        )
    alert(strNew)

reduce:接收两个参数,做累计运算,比如:

var str = [1,2,3];
    var strNew = str.reduce(
        (x,y)=>{
            return x+y;
        }
        )
    alert(strNew)

上面这个函数就可以完成对数组的累加

filter:过滤掉数组中你不想保留的元素,其中根据返回值时true还是false决定元素的去留,比如:

var str = [1,2,3];
    var strNew = str.filter(
        (x)=>{
            return x%2==0;
        }
        )
    alert(strNew)

上面的代码可以实现保留数组中的偶数

sort:对数组元素进行排序,比如:

var str = [71,9,0,12,106.23];
    var strNew = str.sort(
        (x,y)=>{
            if (x>y) return 1;
            else if (x==y) return 0;
            else return -1;
        }
        )
    alert(strNew)

其实就是根据自定义的比较规则来排序———前面元素和后面元素比较返回为-1

猜你喜欢

转载自www.cnblogs.com/hhssqq9999/p/8858711.html
今日推荐