• 数组中元素累加 reduce


    例:

      

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta http-equiv="X-UA-Compatible" content="ie=edge">
        <title>Document</title>
    </head>
    <body>
        <p>
                [65,14,22,5]
        </p>
        <button onclick="myFunction()">求和</button>
        <div id="demo">
    
        </div>
        <script>
            var numbers=[65,14,22,5];
            function getSum(total,num){
                return total+num;
            }
            function myFunction(item){
                document.getElementById('demo').innerHTML=numbers.reduce(getSum);
            }
        </script>
    </body>
    </html>

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

    reduce()方法可以作为一个高阶函数,用于函数的compose。

    注意:reduce()方法对于空数组是不会执行回调函数的。

     语法:

      array.reduce( function( total , currentValue , currentIndex , arr) , initialValue)

     参数:

      function( total, currentValue, currentIndex, arr)     必需。用于执行每个数组元素的函数。

       函数参数:

         total:必需。初始值,或者计算结束后的返回值。

         currentValue:必需。当前元素

         currentIndex:可选。当前元素的索引

           arr:可选。当前元素所属的数组对象。

      initialValue  可选。传递给函数的初始值。

    例:

     四舍五入后计算数组元素的总和:

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <title>Page Title</title>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" type="text/css" media="screen" href="main.css" />
        <script src="main.js"></script>
    </head>
    <body>
        <p>
                [15.5,2.3,1.1,4.7]
        </p>
        <button onclick="myFunction()">点我</button>
        <p>数组元素之和:<span id="demo"></span></p>
    
        <script>
            var numbers=[15.5,2.3,1.1,4.7];
            function getSum(total,num){
                return total+Math.round(num);
            }
            function myFunction(item){
                document.getElementById("demo").innerHTML=numbers.reduce(getSum,0);
            }
        </script>
    </body>
    </html>

     

        

  • 相关阅读:
    python 端口扫描仪
    [ruby on rails] 深入(1) ROR的一次request的响应过程
    [ruby on rails] 跟我学之(10)数据输入验证
    [ruby on rails] 跟我学之(9)删除数据
    [ruby on rails] 跟我学之(8)修改数据
    [ruby on rails] 跟我学之(7)创建数据
    BZOJ 2301 [HAOI2011]Problem b (分块 + 莫比乌斯反演)
    BZOJ 2005 [Noi2010]能量采集 (数学+容斥 或 莫比乌斯反演)
    BZOJ 1497 [NOI2006]最大获利 (最小割)
    BZOJ [FJOI2007]轮状病毒 (找规律)
  • 原文地址:https://www.cnblogs.com/em2464/p/10361036.html
Copyright © 2020-2023  润新知