请求编写生成等边三角形的JavaScript循环代码(修复现有代码)
修正JavaScript等边三角形生成代码
你的代码存在三个核心问题,导致无法生成正确的等边三角形:
- 内层循环错误输出固定值
i而非循环变量,前半部分数字重复; - 第三个循环的变量范围设置错误,无法生成对称的后半部分序列;
- 空格与数字后的填充长度不统一,导致排版错位。
以下是修正后的代码,能生成对称对齐的数字等边三角形:
const totalLayers = 5; // 统一每个元素的宽度,确保整体对齐 const elementWidth = 4; for (let i = 1; i <= totalLayers; i++) { let line = ''; // 生成每行前面的缩进空格 for (let j = 1; j <= totalLayers - i; j++) { line += ' '.repeat(elementWidth); } // 从当前层数i递减到1 for (let k = i; k >= 1; k--) { line += k.toString().padEnd(elementWidth); } // 从2递增回当前层数i,形成对称结构 for (let l = 2; l <= i; l++) { line += l.toString().padEnd(elementWidth); } console.log(line); }
运行后输出效果:
1 2 1 2 3 2 1 2 3 4 3 2 1 2 3 4 5 4 3 2 1 2 3 4 5
如果需要调整三角形大小,修改totalLayers的值即可;调整元素宽度则修改elementWidth,只要保证所有元素宽度一致,就能维持等边对齐的效果。
内容的提问来源于stack exchange,提问作者Nugraha
相关产品推荐
相关产品推荐

