Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/10/2014, 18:59
Avatar de Alexis88
Alexis88
Philosopher
 
Fecha de Ingreso: noviembre-2011
Ubicación: Tacna, Perú
Mensajes: 5.552
Antigüedad: 13 años
Puntos: 977
Respuesta: como realizo todas las combinaciones posibles entre elementos de arrays

Podrías hacerlo así:

Código Javascript:
Ver original
  1. var a = ['M', 'F'],
  2.     b = ['Pobre', 'Rico', 'Medio'],
  3.     c = ['Lima', 'Chiclayo', 'Trujillo'];
  4.  
  5. (function(x, y, z){
  6.     var final = [];
  7.     for (var i = 0, l = x.length; i < l; i++){
  8.         for (var j = 0, k = 0, m = y.length, n = z.length; j < m; j++){
  9.             final.push([a[i], b[j], c[k]]);
  10.             if (j == m - 1 && k < n - 1){
  11.                k++;
  12.                j = -1;
  13.             }
  14.         }
  15.     }
  16.     console.log(final);
  17. })(a, b, c);

Lo cual dará por resultado lo siguiente:

Código Console:
Ver original
  1. Array(
  2.     Array(M, Pobre, Lima),
  3.     Array(M, Rico, Lima),
  4.     Array(M, Medio, Lima),
  5.     Array(M, Pobre, Chiclayo),
  6.     Array(M, Rico, Chiclayo),
  7.     Array(M, Medio, Chiclayo),
  8.     Array(M, Pobre, Trujillo),
  9.     Array(M, Rico, Trujillo),
  10.     Array(M, Medio, Trujillo),
  11.     Array(F, Pobre, Lima),
  12.     Array(F, Rico, Lima),
  13.     Array(F, Medio, Lima),
  14.     Array(F, Pobre, Chiclayo),
  15.     Array(F, Rico, Chiclayo),
  16.     Array(F, Medio, Chiclayo),
  17.     Array(F, Pobre, Trujillo),
  18.     Array(F, Rico, Trujillo),
  19.     Array(F, Medio, Trujillo)
  20. )

Lo que hago es simple. Recorro al primer array y, en cada iteración, recorro al segundo, en donde, además, declaro un contador para ir tomando los valores del tercer array. En cada iteración de este segundo bucle, inserto un nuevo array dentro del array final con los valores equivalentes a los contadores en cada iteración y solo cuando el valor del contador del segundo array sea igual a la última posición de este y el contador del tercero sea menor que la última posición del suyo, incremento el valor del tercer contador y asigno -1 al segundo contador pues, al final de esa iteración, su valor se incrementará en uno, con lo cual, terminará siendo igual a cero.

Saludos
__________________
«Juro por mi vida y mi amor por ella, que jamás viviré para el provecho de otro hombre, ni le pediré a otro hombre que viva para el mío».

Ayn Rand