You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JavaScript实现循环中按对应数量添加短横线的字符串生成

解决循环生成指定格式字符串的问题

你遇到的问题很明确:需要让每个数字后面的短横线数量等于当前的数字值,而不是固定的1个。咱们来一步步修正你的代码:

首先看你的原代码,问题出在numbers += ('-')这一行——不管i是多少,都只加了1个短横线。而我们需要的是,当i>0时,添加i个短横线。

方案1:使用ES6的String.repeat()方法(推荐)

ES6提供的repeat()方法可以快速生成重复指定次数的字符串,完美适配这个需求。修改后的代码如下:

let numbers = '';
const n = 7; // 建议用const声明固定值,避免意外修改
for (let i = 0; i <= n; i++) {
  numbers += i;
  // 当i>0时,添加i个短横线
  if (i > 0) {
    numbers += '-'.repeat(i);
  }
}
console.log(numbers); // 输出:01-2--3---4----5-----6------7-------

方案2:兼容旧环境的循环写法

如果需要支持不支持ES6的旧环境,可以嵌套一个小循环来生成对应数量的短横线:

let numbers = '';
const n = 7;
for (let i = 0; i <= n; i++) {
  numbers += i;
  if (i > 0) {
    // 循环i次,每次添加一个短横线
    for (let j = 0; j < i; j++) {
      numbers += '-';
    }
  }
}
console.log(numbers);

验证结果

运行上面的代码,当n=7时,会正好生成你想要的字符串:01-2--3---4----5-----6------7-------。

内容的提问来源于stack exchange,提问作者Klaudia A

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:32:37