如何在JavaScript中打印半金字塔?解决内部循环自动换行问题
解决JavaScript半金字塔打印时内部循环换行的问题
这问题我太熟了!你遇到的核心问题就是console.log()的默认行为——它每次调用都会自动在输出末尾追加换行符,所以内部循环里每输出一个*就换一行,自然没法形成横向的星号序列。下面给你两种靠谱的解决方案,适配不同的运行环境:
方案1:Node.js环境用process.stdout.write()替代
在Node.js里,我们可以用process.stdout.write()来输出内容,这个方法默认不会自动添加换行符,完美适配你的需求:
for (i = 0; i < 5; i++) { for (j = 1; j <= i; j++) { process.stdout.write('*'); } console.log(); // 这里用来换行,结束当前行 } console.log('-----------------');
方案2:通用拼接字符串法(兼容浏览器+Node.js)
如果你的代码可能在浏览器控制台运行,那上面的方法就用不了了,这时候可以先把每行的星号拼接成一个完整字符串,再一次性输出整行:
for (i = 0; i < 5; i++) { let row = ''; // 用来存储当前行的星号 for (j = 1; j <= i; j++) { row += '*'; } console.log(row); // 一次性输出整行 } console.log('-----------------');
这种方法的思路是先把整行内容攒好,再交给console.log()输出,从根源上避免了单个星号换行的问题,兼容性拉满~
内容的提问来源于stack exchange,提问作者Aiman Kazi
相关产品推荐
相关产品推荐

