zoukankan      html  css  js  c++  java
  • 高程5.2.9归并方法

    ECMAScript 5新增了两个归并数组的方法:reduce()和reduceRight().这两个方法都会迭代数组的所有项,然后构建一个最终返回的值.

    其中reduce()从数组的第一项开始,逐个遍历到最后,而reduceRight(),顾名思义就是从右边也就是从最后一项开始,向前遍历到第一项.

    这两个方法都接收两个参数,一个是每一项上调用的函数 和 (可选的)作为归并基础的初始值.

    传给这两个方法的函数,接收4个参数:前一个值,当前值,项的索引 和 数组对象.

    这个函数返回的值都将作为 第一个参数(前一个值) 自动传给下一项.

    //第一次迭代发生在数组的第二项上,因此第一个参数是数组的第一项,第二个参数就是数组的第二项
        var arr=[1,2,3,4,5];
    
        var sum=arr.reduce(function(prev,cur,index,array){
            return prev+cur;
        });
        console.log(sum);//15

    第一次执行回调函数,prev是1,cur是2.第二次时,prev是3(1+2),cur是3(数组的第三项).这样一直下去,直到把数组中每一项都访问一遍,最后返回结果

    //有初始值时
    var arr1=[3];
        var sum1=arr1.reduce(function(prev,cur,index,array){
            return prev+cur;
        },7)
        console.log(sum1);//10

    reduceRight()和reduce()的作用类似,只不过方向是相反的,从后往前

    var arr=[1,2,3,4,5];
    
        var sum2=arr.reduceRight(function(prev,cur,index,array){
            return prev+cur;
        })
        console.log(sum2);//15

    这个例子里,第一执行回调函数,prev是5,cur是4,最后结果是相同的.

    使用reduce()和reduceRight(),主要取决从哪头开始遍历数组,其他都是完全一样的.

  • 相关阅读:
    iOS开篇——UI之UIStepper (计步器)
    iOS开篇——UI之UISegmentedControl (分段选择器)
    iOS开篇——UI之ProgressView(进度条)
    iOS开篇——UI之UAlertView(提示框)
    iOS开篇——UI之UIActivityIndicatorView(菊花)
    iOS开篇——UI之UIActionSheet
    iOS开篇——UI之UINavigationController
    iOS开篇——UI之UIViewController
    iOS开篇——UI之UIImageView
    iOS开篇——UI之UIView
  • 原文地址:https://www.cnblogs.com/sunshinegirl-7/p/4980483.html
Copyright © 2011-2022 走看看