JavaScript BFS 算法:将 While 循环 封装进函数
是的,可以将 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 循环的逻辑封装在了函数内部,可以灵活地修改循环的条件。
原文地址: https://www.cveoy.top/t/topic/qpbI 著作权归作者所有。请勿转载和采集!