高阶函数:map/reduce

本文介绍了JavaScript中数组方法map和reduce的使用方法,并通过实例展示了如何利用这些方法进行高效的数据处理,包括数组映射与累积计算。
map 变量独立执行

举例说明,比如我们有一个函数f(x)=x2,要把这个函数作用在一个数组[1, 2, 3, 4, 5, 6, 7, 8, 9]上,就可以用map实现如下:
1321930-20180326111715551-1387098680.png

function pow(x) {
    return x*x;
}

var arr = [1, 2, 3, 8, 9];
var result = arr.map(pow);  

console.log(result) 

/* result [1, 4, 9, 64, 81]
*  arr [1, 2, 3, 8, 9]
*/

arr.map(f(x))意思为将arr执行f(x)返回结果,但不改变原数组值




reduce 变量套用执行

这个函数必须接收两个参数,reduce()把结果继续和序列的下一个元素做累积计算

// 累加
arr = [1, 2, 3, 4, 5];

arr.reduce(function(x, y) {
    return x + y;
})  // 15


// 累积
arr.reduce(function(x, y) {
    return x * y;
}) //120

制造一个累积函数

function product(arr) {
    var result = arr.reduce(function(x, y){
        return x * y;
    })

    return result;
}


arr = [5, 6, 7, 8];

product(arr);





练习:请把用户输入的不规范的英文名字,变为首字母大写,其他小写的规范名字。输入:['adam', 'LISA', 'barT'],输出:['Adam', 'Lisa', 'Bart']。

'use strict';

var arr = ['adam', 'LISA', 'barT'];

function normalize(arr) {

    function LowerCase(arr){
        arr = arr.toLocaleLowerCase();
        return arr;
    }

    function UpperCase(arr){
        arr = arr.substring(0,1).toUpperCase()+arr.substring(1);
        return arr;
    }

    arr = arr.map(LowerCase);
    arr = arr.map(UpperCase);
    
    return arr;
}

arr = normalize(arr);

// ["Adam", "Lisa", "Bart"]

转载于:https://www.cnblogs.com/jilaokang/p/8649902.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值