如何用一系列数字换行?

How can I wrap with a range of numbers?

我想知道当我的数字列表达到 10 并且他的倍数达到 100 时如何打破这条线。
示例:1 2 3 4 5 6 7 8 9 10
11 12 13 14 15 16 17 18 19 20
...
这是我到目前为止写的

var limit= 100;
var str= "";

for (var i =1; i<=limit; i++){
str += i+ "";
}
console.log(str);

您可以使用余数运算符 (%) 来确定 i 是否是 10 的倍数,如下所示:

if (i % 10 === 0) {
    // Yes, it is
}

请注意,0 也会匹配,但您是从 1 开始的,所以没问题。

因此,在您的循环中,在 ¹ 输出项目之后,使用它来输出换行符(无论您使用的环境中的换行符是什么)。例如(为了清楚起见,我在数字之间添加了空格):

var limit= 100;
var str= "";

for (var i = 1; i <= limit; ++i) {
    str += i + " ";
    if (i % 10 === 0) {
        str += "\n";
    }
}
console.log(str);


¹ 之后,因为您是从 1 开始的。如果您从 0 开始,它会在之前(并且您需要 i !== 0 && 在支票上)。

你也可以这样做:

var limit= 100;
var str= "";

for (var i = 1; i <= limit; ++i) {
    str += i + ((i % 10) ? " " : "\n");
}
console.log(str);

let str = '';

for(let i =0; i < 100; i++ ) {
  const isWrap = (i > 0) && (i % 10 === 0);
  
  str += isWrap ? '\n' : ' ';
  str += (i+1);
}

console.log(str);

这是我的,使用Array.from制作数组并映射到分块(切片也可以用于分块)

const makeGrid = lim => Array.from(Array(lim+1).keys()) // make 101
  .slice(1) // drop the 0
  .map(i => i%10===0?` ${i}\n`:` ${i}`) // map to have a newline
  .join("");
console.log(makeGrid(100));