JSFiddle - React, Tailwind, and code Playground

by pierian_design

HTML

<div id="out"></div>

JavaScript

var res = [
        [[1, 2], [5, 6, 700], [9, 10, 11, 12]],
        [[10, 20, 30], [50, 60, 70, 80]],
        [[100, 200, 300, 400], [500, 600], [900, 1000], [1100, 1200]]
    ]
  
  
  	/*-------------------------------------------------------------*/
    
    function callSum(param1, v) {
      	if(!param1){             
           param1 = {value: v, count: 0};
        }else{                
           param1.value = param1.value + v;
           param1.count++;
        }  
        return param1;
    }
    
  	/*-------------------------------------------------------------*/    
    
    
    function prepareValues(arrs, func, func2){
    
			var posthandler;
      var count;
      var param1;

      /*if(!func2){
        posthandler = function(v, c){
          return v;
        }
      }else{
      	posthandler = func2;
      }*/

      var resarr = arrs.reduce(function(acc, arr){
        if(Array.isArray(arr)){
          arr.forEach(function(subarr, i){
          	
            if(Array.isArray(subarr)){
              if(!Array.isArray(acc[i])){
                acc[i] = [];
              }
              subarr.forEach(function(v, j){
              
                param1 = acc[i][j];
                
                return callSum(param1, v);

                /*if(!acc[i][j]){             
                  acc[i][j] = {value: v, count: count};
                }else{                
                  acc[i][j].value = func(acc[i][j].value,v);
                  acc[i][j].count++;
                } */
                
                
                
                
              });
            }
          });
        }
        return acc;
      },[]);

      return resarr.map(function(subarr){
        if(Array.isArray(subarr))
          return subarr.map(function(item){
            if( typeof item === "object" && !Array.isArray(item)){
              return posthandler(item.value,item.count);
            }
            return item;
          });
        return...