Еще 2 варианта
function gn (arr, result = []) {
var [j, mas]= [arr[0].shift(), arr.slice(1).join().split(',')]
for(var i = 0; i < mas.length; i++) result.push(j+','+mas[i]);
return (!arr[0].length) ? result : gn(arr, result);
}
console.log(gn( [[1,2,3], [4,5,6],[7,8,9]] ))
function gn (arr, result = []) {
var [j, mas]= [arr[0].shift(), arr.slice(1)]
for(var i = 0; i < mas.length; i++)
for(var k = 0; k < mas[i].length; k++)
(result[k] == undefined) ? result[k] = j+','+mas[i][k] : result[k] = result[k] + ','+ mas[i][k];
return (!arr[0].length) ? result : result.concat(gn(arr));
}
console.log(gn( [[1,2,3], [4,5,6],[7,8,9]] ))