JSFiddle - React, Tailwind, and code Playground

by ronilan

HTML

Reduce: <span id="arrayReduceSum"></span>

<br />For Loop: <span id="arrayForSum"></span>

<br />While Loop: <span id="arrayWhileSum"></span>

<br />Recursive: <span id="arrayRecursiveSum"></span>

<br />
<br />
<div id="arrayPrototypeSum"></div>

JavaScript

// different ways to sum

function arrayReduceSum(array) {
    return array.reduce(function (pv, cv) {
        return pv + cv;
    }, 0);
};

function arrayForSum(array) {

    var max = array.length,
        i,
        result = 0;

    for (i = 0; i < max; i++) {
        result = result + array[i];
    }

    return result;
};

function arrayWhileSum(array) {

    var i = array.length,
        result = 0;

    while (i--) {
        result += array[i];
    }

    return result;
};

function arrayRecursiveSum(sum, arr) {
    cloneArray = arr.slice(0);
    if (cloneArray.length) {
        sum = arrayRecursiveSum(sum + cloneArray.pop(), cloneArray);
    }
    return sum;
};

// add method to Array object

Array.prototype.sum = function () {

    // return arrayReduceSum(this);    
    // return arrayForSum(this);
    // return arraywhileSum(this);
    return arrayRecursiveSum(0, this);

};

array = [1, 2, 3, 4, 44, 11, 678];

$("#arrayReduceSum").text((arrayReduceSum(array)));
$("#arrayForSum").text((arrayForSum(array)));
$("#arrayWhileSum").text((arrayWhileSum(array)));
$("#arrayRecursiveSum").text((arrayRecursiveSum(0, array)));
$("#arrayPrototypeSum").text((array.sum()));