
本文讲解 JavaScript 控制台中 console.log() 打印重复字符时被自动分组的问题,提供简洁高效的解决方案——使用 String.prototype.repeat() 一次性输出每行,确保三角形图案按预期分行显示。
本文讲解 javascript 控制台中 `console.log()` 打印重复字符时被自动分组的问题,提供简洁高效的解决方案——使用 `string.prototype.repeat()` 一次性输出每行,确保三角形图案按预期分行显示。
在 Chrome 等现代浏览器的开发者工具中,console.log() 默认会对连续、完全相同的日志条目进行自动折叠分组(例如显示为 21 #),这是为了提升日志可读性;但对初学者练习打印 ASCII 图案(如三角形)时,反而会破坏预期的视觉结构。
你原始代码的问题在于:内层循环每次调用 console.log("#") 都输出一个单独的 #,导致 15 次独立日志(第 1 行 1 个 #,第 2 行 2 个 #……共 15 个),而 Chrome 将它们识别为重复项并合并显示,无法形成“逐行递增”的三角形效果。
✅ 正确做法是:每行构造完整字符串后,仅调用一次 console.log()。利用 String.prototype.repeat() 方法可高效生成指定数量的重复字符:
for (let i = 1; i <= 5; i++) {
console.log("#".repeat(i));
}运行结果将严格符合预期:
# ## ### #### #####
? 进阶提示:
- 若需右对齐三角形(如题图中带空格的版本),可结合空格填充:
for (let i = 1; i <= 5; i++) { const spaces = " ".repeat(5 - i); const hashes = "#".repeat(i); console.log(spaces + hashes); } // 输出: // # // ## // ### // #### // ##### - 避免依赖禁用「Group similar entries」设置——该选项仅影响显示方式,不改变日志语义,且在团队协作或不同环境(如 Node.js)中不可靠。
-
repeat()方法兼容性良好(支持 Chrome 41+、Firefox 24+、Safari 9+),无需额外 polyfill。
总结:打印图案的本质是按行构建字符串,而非逐字符输出。掌握 repeat()、模板字符串和单次 log() 的组合,是编写清晰、可维护控制台输出的基础实践。



















