是的,可以将 while 循环写在函数里面。可以将 while 循环的条件作为函数的参数,然后在函数内部进行循环判断。例如:

function bfs(node, condition){
  let result = [];
  let queue = [node];
  while(condition(queue)){
    let curlevel = queue;
    queue = [];
    Array.from(curlevel).forEach(item => {
      result.push(item);
      Array.from(item.children).forEach(el => {
        queue.push(el);
      })
    })
  }
  return result;
}

function condition(queue){
  return queue.length > 0;
}

let rootNode = document.getElementById('app');
let nodes = bfs(rootNode, condition);
console.log(nodes);

这样就将 while 循环的逻辑封装在了函数内部,可以灵活地修改循环的条件。

JavaScript BFS 算法:将 While 循环 封装进函数

原文地址: https://www.cveoy.top/t/topic/qpbI 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录