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;