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