以下为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转为数组返回。