Ver Mensaje Individual
  #7 (permalink)  
Antiguo 27/10/2014, 17:56
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 10 meses
Puntos: 260
Sonrisa Respuesta: como realizo todas las combinaciones posibles entre elementos de arrays

Hola,

Cita:
Iniciado por Alexis88 Ver Mensaje
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.
Si lo pones así se mira realmente difícil, técnicamente creo que estas haciendo a' x b' x c', multiplicación de vectores para obtener su producto cartesiano, y creo que posiblemente la solución mas simple sea algo así:

Código Javascript:
Ver original
  1. var t = [];
  2. for (i = 0; i < a.length; i++) {
  3.   for (j = 0; j < b.length; j++) {
  4.     for (k = 0; k < c.length; k++) {
  5.       t.push([a[i], b[j], c[k]]);
  6.     }
  7.   }
  8. }
  9. console.log(t);
http://www.forosdelweb.com/f18/desaf...3/#post4433005

Cita:
Iniciado por Alexis88 Ver Mensaje
... Si los extraes de una BD (suponiendo que fuera así), bastaría con relacionar a las tablas que los contienen y mediante consultas SQL, ...
Cita:
Iniciado por Copia Ver Mensaje
... Encontonces lo que busco es alertar a los usuarios, por ejemplo cuando 10 personas de trujillo marquen que son de nivel socioeconomico C.

Como no se cuantas relaciones necesiten hacer los usuarios, quiero encontrar una solucion generica con los algoritmos. Con esto yo construire una tabla y Columna A, Columna B, Alerta. donde alerta me dice la relación de estas columnas.
Yo en lo personal no he comprendido bien la utilidad que le vas a dar, como bien indica Alexis88 definitivamente la mejor opción sería en la base de datos. La parte mas confusa es donde dice: 10 personas, supongo que los resultados vienen de la base de datos, y extraer esa información usando el lenguaje SQL es mucho mas simple.

Pero aún así, si es te de utilidad posiblemente puedas hacer parecido a esto, te extrae el producto cartesiano de N vectores, multiplicando cada uno de los vectores con el resultado previo, recursivamente:

Código Javascript:
Ver original
  1. function imul(a, b) {
  2.   var r = [];
  3.   for (var i = 0; i < a.length; i++) {
  4.     for (var j = 0; j < b.length; j++) {
  5.       r.push(b[j].concat(a[i]));
  6.     }
  7.   }
  8.   return r;
  9. }
  10.  
  11. function tree(previous, argument) {
  12.   if (argument.length == 0) {
  13.     return previous.map(function (x) {
  14.       return [x];
  15.     });
  16.   }
  17.   return imul(previous, tree(argument[0], argument.slice(1)));
  18. }
  19.  
  20. function build() {
  21.   var argument = Array.prototype.slice.apply(arguments, [0]);
  22.   return tree(argument[0], argument.slice(1));
  23. }
  24.  
  25. console.log(build(a, b, c));

En los dos casos a, b y c, son los vectores del post orginal,

Saludos,