Prendre une entrée où yPerms est une matrice 3D d'exemple:Arbre de traversée à travers matrice 3d
[
[[1,2,3],[4,5,6]],
[[11,12,13],[14,15,16]]
]
La sortie doit être toute combinaison possible de valeurs dans chaque rangée. Pour cet exemple, la sortie correcte serait
[
[[1,2,3],[11,12,13]],
[[1,2,3],[14,15,16]],
[[4,5,6],[11,12,13]],
[[4,5,6],[14,15,16]]
]
L'entrée en réalité aura beaucoup plus de lignes et de colonnes de sorte qu'il ne peut pas être fait avec seulement quelques boucles pour (au moins je ne vois pas comment) .
Ma tentative est un gâchis complet, la question est ce chemin au sein de la boucle qui est censé « reset » temp, il semble avoir pris la valeur à partir de la prochaine fonction récursive appelée:
function treeTraverse(yPerms, unique, row) {
var result = [];
var path = unique||[];
var n = row||0;
if (yPerms.length <= n) {
console.log("found a path");
return path;
}
for(let m in yPerms[n]) {
var temp = path;
temp.push(yPerms[n][m]);
result.push(treeTraverse(yPerms,temp,n+1));
}
return result;
}