Sto provando a creare una versione ricorsiva dei seguenti cicli nidificati e ottenere gli stessi risultati del codice di riferimento. L'esempio è sotto.Provare a convertire il ciclo annidato in funzione ricorsiva
Questa è una versione su Codepen http://codepen.io/anon/pen/XbQMLv
(L'intento del codice è quello di uscita solo combinazioni uniche di interi da indici.)
codice e di uscita originale:
var len = 4;
for (var a = 0; a < len; a++) {
for (var b = a + 1; b < len; b++) {
for (var c = b + 1; c < len; c++) {
console.log(a, b, c);
}
}
}
// Outputs:
// 0 1 2
// 0 1 3
// 0 2 3
// 1 2 3
codice ricorsivo e uscita:
var len = 4;
var end = 3;
var data = [];
var loop = function (index) {
if (index === end) {
console.log(data);
return;
}
for (var i = index; i < len; i++) {
data[index] = i;
loop(i + 1);
}
}
loop(0);
// Outputs:
// [ 0, 1, 2 ]
// [ 0, 2, 3 ]
// [ 1, 3, 2 ]
// [ 2, 3, 3 ]
Non sono sicuro di cosa mi manchi qui.
Come state usando 'FINE' con i loop? – elclanrs
Se vuoi combinazioni univoche, vuoi dire che vuoi permutazioni di quella matrice? – elclanrs
@elclanrs corretto – Geuis