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);