Ver Mensaje Individual
  #1 (permalink)  
Antiguo 26/10/2014, 17:19
Avatar de Copia
Copia
 
Fecha de Ingreso: noviembre-2009
Mensajes: 309
Antigüedad: 15 años
Puntos: 4
Pregunta como realizo todas las combinaciones posibles entre elementos de arrays

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?
__________________
Dejando una huella de mi existencia por la red en http://tiricaya.com