如何使用JavaScript循环打印*图案并解决输出格式错误问题
问题原因
console.log() 方法每次调用都会自动在输出内容末尾追加换行符,你在内层循环中每生成一个星号就调用一次console.log('*'),所以每个星号都会单独占一行,后续打印的空行进一步拉大了行间距,就得到了你现在的错误输出。
修复方案
方案1:全环境兼容写法(浏览器、Node.js均适用)
先在内层循环拼接好单行星号字符串,外层循环每轮只调用一次console.log()输出整行内容,同时建议给循环变量加上let声明,避免污染全局作用域:
for (let i = 1; i <= 5; i++) { let lineContent = '' for (let j = 0; j < i; j++) { lineContent += '*' } console.log(lineContent) }
方案2:Node.js环境专属写法
如果你是在Node.js环境下运行代码,可以使用不会自动追加换行的process.stdout.write()方法打印星号:
for (let i = 1; i <= 5; i++) { for (let j = 0; j < i; j++) { process.stdout.write('*') } console.log('') }
内容的提问来源于stack exchange,提问作者Jagannath Krishna.P.A
相关产品推荐
相关产品推荐

