Buenas tardes, intento realizar un algoritmo que datos n arrays, pueda combinar cada elemento de los arrays, de esta manera.
Código:
var a = ['M', 'F'];
var b = ['Pobre', 'Rico', 'Medio'];
var c = ['Lima', 'Chiclayo', 'Trujillo'];
Combinacion a y b:
Código:
(M, Pobre) , (M, Rico ), (M, Medio)
(F, Pobre), (F, Rico ), (F, Medio)
Si agregaria un tercer elemento a, b y c:
(M, Pobre, Lima) , (M, Rico, Lima ), (M, Medio, Lima)
El orden no importa, pero si que no se repitan las combinaciones, realice dos algoritmos pero con ninguno logro realizar las combinaciones correctamente:
Algoritmo 1:
Código:
var a = ['M', 'F'];
var b = ['Pobre', 'Rico', 'Medio'];
var c = ['Lima', 'Chiclayo', 'Trujillo'];
var ob = [];
var arrays = [a, b, c];
for(var j = 0; j < arrays.length; j++ ){
ob[j] = [];
for(var i=0; i < 18; i = i + arrays[j].length){
for(k=0; k < arrays[j].length; k++){
ob[j].push(arrays[j][k]);
console.log(arrays[j][k]);
}
}
console.log('................');
}
Y en este segundo algoritmo intento usar una funcion recursiva sin exito:
Código:
function mesclar(){
if(arguments.length == 2) {
//console.log(arguments);
return arguments[1][0][arguments[0].posicion];
}
else{
var arg = Array.prototype.splice.call(arguments, 2);
//console.log(arg);
var cad = '';
for(var i=0; i<arguments[1].length; i++){
arguments[0].posicion = i;
cad = cad + ' - ' + arguments[1][i] + ' - '+ mesclar(arguments[0], arg) ;
}
console.log(cad, ' aaa ');
}
}
mesclar({posicion:0}, b,c);
He estado dando vueltas a esto durante el día sin exito, que podria hacer?