以下为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节点的一维数组。