共计 479 个字符,预计需要花费 2 分钟才能阅读完成。
bfe.dev 是一个针对前端的刷题网站,像是前端的 LeetCode。该系列文章是我在下面的刷题日记。
题目
BFE.dev#104 104. 按层遍历 DOM 树
剖析
按层遍历,所以初始状态是
[div]
下一层
[p, p, div]
下一层
[button, a, p, div]
能够看到咱们只须要不停的从右边取出元素,而后将其子元素从左边不停放入即可。这用 queue 实现。
来,放上代码吧。
其实现是 BFS,并不苦难。并且咱们只须要返回所有元素,并不需要思考每一层的边界。
/**
* @param {HTMLElement} root
* @returns {HTMLElement[] }
*/
function flatten(root) {if (root === null) return []
const queue = [root]
const result = []
while (queue.length > 0) {const head = queue.shift()
result.push(head)
queue.push(...head.children)
}
return result
}
通过撒花
感激浏览,心愿有所帮忙。有趣味能够本人试试。
正文完