zoukankan      html  css  js  c++  java
  • 功能强大的js数组方法:reduce

    arr.reduce()方法接受一个函数作为累加器,数组中的每个值从左到右开始缩减,最终为一个值。

    reduce接受的参数主要有callback(回调函数)和可选参数initvalue(作为第一次调用callback的第一个参数,不传默认数组的第一个元素):

    callback回调函数里又接受四个参数分别是:

    previousValue(上一次调用回调函数返回的值,或者是提供的初始值(initValue))

    currentValue(数组中当前被处理的元素)

    index(当前元素在数组中的索引)

    array(调用reduce的数组)

    简单应用:

    1.求和

    var total=[0,1,2,3].reduce((acc,cur)=>acc+cur,0)
      //total 6

    2.将二维数组转化为一维

    var arr1=[
        [0,1],
        [2,3],
        [4,5],
    ].reduce((acc,cur)=>acc.concat(cur),[])
    //arr1 [0,1,2,3,4,5]

    3.计算数组中每个元素出现的次数

    var names=['Alice','Bob','Tiff','Bruce','Alice'];
    var count=names.reduce(function(allNames,name){
        console.log(allNames)
        if(name in allNames){
            allNames[name]++;
        }else{
            allNames[name]=1;
        }
        return allNames;
    },{})
      //count is {Alice: 2, Bob: 1, Tiff: 1, Bruce: 1}

    4.数组去重

    var arr=[1,2,1,2,3,5,4,5,3,4,4,1,6];
    let result=arr.sort().reduce((init,current)=>{
        if(init.length===0 || init[init.length-1]!==current){
            init.push(current);
        }
        return init;
    },[]);
    //result is [1,2,3,4,5,6]
  • 相关阅读:
    shell 脚本3 (输出与流程控制)
    centos 添加sudo 权限
    rz安装
    centos 安装mysql
    linux删除文件未释放
    关于字符串String的编程。
    spring mvc 学习指南二
    spring mvc 学习指南一
    《 spring mvc 》学习计划
    关于jsp的总结
  • 原文地址:https://www.cnblogs.com/myspecialzone/p/10484252.html
Copyright © 2011-2022 走看看