如何使用JavaScript绘制云杉形星号三角形?
JavaScript 云杉形星号三角形实现方案
问题分析
现有代码仅在循环中持续累加星号,没有处理每行左侧的填充空格,也没有按照奇数规律生成对应数量的星号,因此无法输出居中的三角形效果。
实现代码
const lines = 7; for (let i = 0; i < lines; i++) { const leftSpace = ' '.repeat(lines - i - 1); const starSection = '*'.repeat(2 * i + 1); console.log(leftSpace + starSection); }
运行原理
- 先定义总行数
lines为7,和给出的示例行数一致。 - 循环遍历每一行,i为当前行的序号(从0开始计数):
- 左侧空格生成:每行需要的空格数为
总行数 - 当前行序号 - 1,越靠下的行空格数越少,保证所有星号段整体居中。比如第一行(i=0)空格数为6,和示例第一行的左侧空格数量完全匹配。 - 星号段生成:每行的星号数量为
2 * i + 1,保证每一行都比上一行多2个星号,形成下宽上窄的等腰三角形轮廓。最后一行(i=6)的星号数量为13,和示例完全一致。 - 拼接空格和星号段后直接输出当前行即可。
- 左侧空格生成:每行需要的空格数为
内容的提问来源于stack exchange,提问作者user16677705
相关产品推荐
相关产品推荐

