JSFiddle - React, Tailwind, and code Playground
by pierian_design
JavaScript
function sum(args, func) {
const result = [];
const length = Math.max(...args.map((item) => item.length));
console.log(length);
for (let i = 0; i < length; ++i) {
const arr = args.map((item) => item[i]).filter(Boolean);
const maxLength = Math.max(...arr.map((item) => item.length));
result.push([]);
for (let j = 0; j < maxLength; ++j) {
result[i].push(arr.map((item) => item[j]).filter(Number).reduce(func));
}
}
return result;
}
var arr1 = [[1, 2], [5, 6, 7], [9, 10, 11, 12]];
var arr2 = [[10, 20, 30], [50, 60, 70, 80]];
var arr3 = [[100, 200, 300, 400], [500, 600], [900, 1000], [1100, 1200]];
/* сложить */
sum([arr1, arr2, arr3], (acc, curr) => acc + curr);
/* умножить */
sum([arr1, arr2, arr3], (acc, curr) => acc * curr);