JSFiddle - React, Tailwind, and code Playground
Recursive Sum
by nickadeemus2002
HTML
<div class="wrapper">
<h1>
Total:
<span id="sum"></span>
</h1>
</div>
JavaScript
function flatten(data, depth, currentArray){
console.log('data', data);
var index = -1,
dataLength = data.length,
value;
currentArray || (currentArray = []);
//elements to flatten??
while(++index < dataLength){
value = data[index];
//array depth?
if( Array.isArray(value) && depth > 0){
flatten( value, Infinity -1, currentArray);
}
else {
currentArray.push(value);
}
}
return currentArray;
}
//sum
function sum(){
var totalArguments = arguments.length,
result=0,
items;
//normalize - flatten data;
items = flatten(arguments, Infinity);
items.forEach(function(item){
result += item;
});
return result;
}
var finalResult = sum( 10,
10,
10,
[ 10],
[ 10,
10,
[ 10,
[]
],
10,
[],
10],
10 );
document.getElementById('sum').innerHTML = finalResult;