高阶函数

高阶函数

  • map 不会改变原数组
var arr = [2,3,4,5];// 将所有的值加6;
var newArr = arr.map(function(val){
    return val + 6;
})
console.log(newArr); //[8, 9, 10, 11]

map()作为高阶函数,事实上它把运算规则抽象了,因此,我们不但可以计算简单的f(x)=x2,还可以计算任意复杂的函数,比如,把Array的所有数字转为字符串:

var arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
arr.map(String); // ['1', '2', '3', '4', '5', '6', '7', '8', '9']
  • reduce 不会改变原数组
var arr = [3,4,2,9,4]; // 所有值累加
var newArr1 = arr.reduce(function(previousVal, currentVal) {
    // body...
    return previousVal + currentVal;
})
console.log(newArr1);// 22

var newArr2 = arr.reduce(function(previousVal, currentVal){
    return previousVal * 10 + currentVal; // 34249
})
  • filter 过滤 不会改变原数组
var arr = [3,4,2,9,4]; // 找到3以上的数
var newArr = arr.filter(function(val){
    return val>3;
})
console.log(newArr);// [4, 9, 4]
  • sort 排序 会改变原数组
var arr = [3,4,6,2,9];
arr.sort(function(x, y) {
    // body...
    return x - y;
})

  • reverse 翻转排序
  • concat 连接两个数组
  • split 字符串分割为数组

你可能感兴趣的:(高阶函数)