JSFiddle - React, Tailwind, and code Playground
JavaScript
function GroupBy(a, keySelector, elementSelector)
{
elementSelector = elementSelector || function(e) { return e; };
var key;
var hashs = {};
for (var i = 0, n = a.length; i < n; ++i)
{
key = keySelector(a[i]);
hashs[key] = hashs[key] || []
hashs[key].push(a[i]);
}
return hashs;
}
var x =[[1,2,3,"abc"],[3,4,5,"xyz"],[5,6,7,"abc"]];
var grouped = GroupBy(x, function(k) { return k[k.length-1]; });
for (var i in grouped)
{
var arr = grouped[i];
for (var j = 1; j < arr.length; )
{
for (var p = 0; p < arr[j].length - 1; ++p)
{
arr[0][p] += arr[j][p];
}
arr.splice(j, 1);
}
}
console.log(grouped);