js相关语法基础(5)高阶函数

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_31214097/article/details/85077228

函数可以指向某个变量,一个函数可以接受另外一个函数作为参数变量,这种函数就叫做高阶函数。

function add(x, y, f) {
    return f(x) + f(y);
}

map方法定义在js的array中,调用array的map方法,传入我们自己的函数,就可以得到一个新的array作为结果。

function pow(x){
    return x * x;
}
var arr = [1,2,3,4,5];
var res = arr.map(pow);
console.log(res);

reduce方法,把一个函数作用在这个array上面,这个函数必须接受2个参数,reduce()把结果继续和序列的下一个元素做累计运算。其效果便是。

[x1, x2, x3, x4].reduce(f) = f(f(f(x1, x2), x3), x4)
var res =arr.reduce(function(x,y){
    return x + y;
})
console.log(res);

输出为15

filter函数 可以将array数组中的元素进行过滤。filter()把传入的函数依次作用于每个元素,然后根据返回值是true还是false决定保留还是丢弃该元素。

var arr = [1, 2, 4, 5, 6, 9, 10, 15];
var r = arr.filter(function (x) {
    return x % 2 !== 0;
});

filter可以添加回调函数 第一个是元素,第二个是下标,第三个是数组本身

var arr = ['A', 'B', 'C'];
var r = arr.filter(function (element, index, self) {
    console.log(element); // 依次打印'A', 'B', 'C'
    console.log(index); // 依次打印0, 1, 2
    console.log(self); // self就是变量arr
    return true;
});

 sort方法。认为x < y 返回 -1 认为x == y 返回0 认为x > 0 返回 1

['Google', 'Apple', 'Microsoft'].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);

如果要降序排列,只要return 1和-1修改掉即可。

猜你喜欢

转载自blog.csdn.net/qq_31214097/article/details/85077228