以下为ChatGPT自动生成的解答,正确与否请自行判断。 也许你也可以从大家的发帖中找到想要的答案!
BFE.devAI解答 - JavaScript 代码题
104. 按层遍历DOM树
思路:
使用BFS算法,从根节点开始,逐层遍历所有子节点,每遍历完一层节点,将其加入结果数组中。具体实现如下:
代码实现:
function flattenDom(root) { const result = []; const queue = [root]; while (queue.length) { const node = queue.shift(); result.push(node); let child = node.firstElementChild; // 获取第一个子节点 while (child) { queue.push(child); // 将子节点加入队列中 child = child.nextElementSibling; // 获取下一个兄弟节点 } } return result;}
测试:
const root = document.querySelector('#root');const result = flattenDom(root);console.log(result);
输出:一个包含所有DOM节点的一维数组。