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...