0
以輸入其中yPerms是例的3D陣列:樹的遍歷通過3D陣列
[
[[1,2,3],[4,5,6]],
[[11,12,13],[14,15,16]]
]
輸出必須是在每行中的值的任何可能的組合。在這個例子中正確的輸出將
[
[[1,2,3],[11,12,13]],
[[1,2,3],[14,15,16]],
[[4,5,6],[11,12,13]],
[[4,5,6],[14,15,16]]
]
在現實中的投入將有更多的行和列,因此它不能只是一個for循環夫婦做(至少我看不出) 。
我的嘗試是一個完整的混亂,這個問題是在for循環這是爲了「重置」溫度,它似乎已經從所謂的下一個遞歸函數內採取值路徑:
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;
}