JSFiddle - React, Tailwind, and code Playground

by pierian_design

HTML

<div id="out">

</div>

JavaScript

var res = [
		[[1, 2], [5, 6, 7], [9, 10, 11, 12]],
    [[10, 20, 30], [50, 60, 70, 80]],
    [[100, 200, 300, 400], [500, 600], [900, 1000], [1100, 1200]]
]

function callSum(a, b) {
		return a + b;
}

function callCount(a, b) {
		//console.log(a);
}

function callAverage(a, b) {
		return 'no';
}

function callMax(a, b) {
		return Math.max(a, b);
}

function callMin(a, b) {
		return Math.min(a, b);
}

function prepareValues(arrs, func){
   	return 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){
                    if(!acc[i][j]){
                       //acc[i][j] = v;
                       acc[i][j] = 2;
                    }else{
                      //acc[i][j] = func(acc[i][j],v);
                      return acc[i][j] = 1;
                    } 
                 });
              }
           });
        }
        return acc;
   	},[]);
}

var sum = prepareValues(res, callSum);
var count = prepareValues(res, callCount);
var average = prepareValues(res, callAverage);
var max = prepareValues(res, callMax);
var min = prepareValues(res, callMin);

const display = document.getElementById("out");

display.innerHTML = "сумма массивов:" + "<br>"
                  + JSON.stringify(sum) + "<hr>"
                  /*+ "кол-во значений:" + "<br>"
                  + JSON.stringify(count) + "<hr>"*/
                  + "максимальные значеня:" + "<br>"
                  + JSON.stringify(max) + "<hr>"
                  + "минимальные значеня:" + "<br>"
                  + JSON.stringify(min) + "<hr>"
                  ;