Produs Cartezian

by MariusNastasa

HTML

<h2>Produs Cartezian</h2>

JavaScript

var getCartesianProduct = function() {
    if (arguments.length == 0) return [[]];

    var args = [];
    var i = 1;
    var l = arguments.length;
    var rtn = [];

    for (; i < l; i++) args.push(arguments[i]);

    var ary = arguments.callee.apply(this, args);

    for (i = 0, l = arguments[0].length; i < l; i++) {
        for (var j = 0, m = ary.length; j < m; j++) {
            rtn.push([arguments[0][i]].concat(
            ary[j]));
        }
    }

    return rtn;
};


// test    
var arr = getCartesianProduct([1, 2], [3, 4], [5, 6]);
arr.forEach(function(e, i, a) {
    document.write(arr[i].join(" ") + "<br />");
});