我需要在一个数组中保存给定节点的所有后代节点和节点本身。但是这些节点必须按顺序自下而上,即在离开之前,然后内部节点返回到节点参数。 现在我采用这种方法,但节点按照自上而下的顺序存储,而不是自下而上:
function operationsToInsert(node) {
var operations = [node].reduce(operationsToInsertRec, []);
return operations;
}
function operationsToInsertRec(operations, node) {
operations.push("i(" + node.nodeName + ")");
if(node.childNodes && node.childNodes.length) {
[].reduce.call(node.childNodes, operationsToInsertRec, operations);
}
return operations;
}
例如,如果我有这棵树:
node
/ \
a c
| |
b d
该方法必须返回如下数组:[b, a, d, c, node]
或[d, c, b, a, node]
(自下而上)。
谢谢!