我需要以深度优先的方式遍历树结构的帮助.我无法想出一个算法来正确地做到这一点.
我的意见是这样的:
[ ["A","B","C"],["1","2"],["a","b","c","d"] ]
输出应采取以下形式:
[ "A/1/a","A/1/b","A/1/c","A/1/d","A/2/a","A/2/b","A/2/c","A/2/d","B/1/a","B/1/b","B/1/c","B/1/d","B/2/a","B/2/b","B/2/c","B/2/d","C/1/a","C/1/b","C/1/c","C/1/d","C/2/a","C/2/b","C/2/c","C/2/d" ]
解决方法
这应该做的工作:
function traverse(arr) { var first = arr[0]; var ret = []; if (arr.length == 1) { for (var i = 0; i < first.length; i++) { ret.push(first[i]); } } else { for (var i = 0; i < first.length; i++) { var inn = traverse(arr.slice(1)); for (var j = 0; j < inn.length; j++) { ret.push(first[i] + '/' + inn[j]); } } } return ret; } var inp = [ ["A","d"] ]; var out = traverse(inp); console.log(out);