• 数组求和-JS


    计算给定数组 arr 中所有元素的总和

    输入描述:

    数组中的元素均为 Number 类型

    示例1

    输入

    [ 1, 2, 3, 4 ]

    输出

    10

    不考虑算法复杂度,用递归做:

    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    function sum(arr) {

        var len = arr.length;

        if(len == 0){

            return 0;

        } else if (len == 1){

            return arr[0];

        } else {

            return arr[0] + sum(arr.slice(1));

        }

    }

    常规循环:

    1

    2

    3

    4

    5

    6

    7

    function sum(arr) {

        var s = 0;

        for (var i=arr.length-1; i>=0; i--) {

            s += arr[i];

        }

        return s;

    }

    函数式编程 map-reduce:

    1

    2

    3

    4

    5

    function sum(arr) {

        return arr.reduce(function(prev, curr, idx, arr){

            return prev + curr;

        });

    }

    forEach遍历:

    1

    2

    3

    4

    5

    6

    7

    8

    function sum(arr) {

        var s = 0;

        arr.forEach(function(val, idx, arr) {

            s += val;

        }, 0);

      

        return s;

    };

    eval:

    1

    2

    3

    function sum(arr) {

        return eval(arr.join("+"));

    };

  • 相关阅读:
    QT获取句柄
    java多线程关键字volatile、lock、synchronized
    Java几种常见的设计模式
    将博客搬至CSDN
    0228-0308的笔记
    深入理解es6-Promise对象
    彻底理解正则
    es6学习笔记-class之继承
    es6学习笔记-class之一概念
    arguments对象详解
  • 原文地址:https://www.cnblogs.com/strawqqhat/p/10602164.html
Copyright © 2020-2023  润新知