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()));