以下为ChatGPT自动生成的解答,正确与否请自行判断。
BFE.devAI解答 - JavaScript 代码题
68. 返回DOM tree包含的元素标签名
使用深度优先遍历算法遍历DOM tree,将遇到的元素标签名存储到一个Set中,最后将Set转为数组并返回即可。
代码如下:
function getTags(root) {
const tagSet = new Set();
dfs(root);
return Array.from(tagSet);
function dfs(node) {
if (node.nodeType === Node.ELEMENT_NODE) {
tagSet.add(node.tagName.toLowerCase());
for (let i = 0; i < node.childNodes.length; i++) {
dfs(node.childNodes[i]);
}
}
}
}
其中,Node.ELEMENT_NODE
为数字值1,表示元素节点。nodeType
为节点类型常量,tagName
为元素标签名,toLowerCase()方法将标签名转为小写。在遍历过程中,对每个元素节点进行记录,并对其子节点进行递归遍历。最后将Set转为数组返回。