创建浏览器控制台进度条
进度条函数
/**
* 创建浏览器控制台进度条
* @param {number} total - 任务总个数
* @returns {{step: ((function(): ({finished: boolean}))|*)}}
*/
function createProcessBar(total) {
let curr = 0
let finished = false
return {
step: () => {
if (finished) return { finished }
curr++
const percentage = Number((curr / total * 100).toFixed(2))
const percentageStr = percentage > 100 ? '100.00%' : `${percentage.toFixed(2)}%`
const currOnBar = Math.ceil(curr * 100 / total)
const bar = `${''.padEnd(currOnBar, '|')} ${percentageStr} ${''.padEnd(100 - currOnBar, '.')}`
console.clear()
console.log(bar)
if (currOnBar >= 100) {
finished = true
}
return { finished }
}
}
}
使用示例
// usage example
const bar = createProcessBar(100)
const timer = setInterval(() => {
const { finished } = bar.step()
if (finished) {
clearInterval(timer)
}
}, 1000)
输出
作者:暗恋桃花源丫
本人web前端小白,只是用博客作为笔记!
转载的文章,如有侵权24小时内删除!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 字符编码:从基础到乱码解决