combos

by monteslu

JavaScript

var getCombinations = function(allOptionsArray, combination) {
    if(allOptionsArray.length > 0) {
        for(var i=0; i < allOptionsArray[0].length; i++) {
            var tmp = allOptionsArray.slice(0);
            combination.codes[combination.counter] = allOptionsArray[0][i];
            tmp.shift();
            combination.counter++;
            getCombinations(tmp, combination);
        }
    } else {
        var combi = combination.codes.slice(0);
        combination.result.push(combi);
    }
    combination.counter--;
};

//use it:
var a = [1, "02", 3, "04"];
var b = ["white", "green", "blue", "red"];
var c = ["one", "two", "three", "four"];
//var d = ["a", "b", "c", "d"];
//var e = ["D", "D", "D", "D"];

var allOptionsArray = [a, b, c];//, d,e];
var combination = {codes : [], result : [], counter : 0};

getCombinations(allOptionsArray, combination);

for(var i=0; i < combination.result.length; i++) {
    console.log(combination.result[i]);
}
console.log(combination);