如何 return JavaScript 中的 1 2 3 4 5 ... 模式但以下数字在新行开始?

How to return a 1 2 3 4 5 ... pattern in JavaScript but with the following number starting on a new line?

预期输出:

1
2 3
4 5 6
7 8 9 10
...

我尝试过的方法(以及许多其他无效的方法):

let line = "";

for (let i = 1; i <= 10; i++) {
  line = line + " " + i;
  console.log(line);
}

我得到的:

1
1 2
1 2 3
1 2 3 4
...

这是更接近预期结果的结果,但我不知道如何使用以下数字而不是 1 开始每一行。

谢谢!

您可以使用 Gauss sum formula for triangular number,其中从 1n 的所有数字都是

n * (n + 1) / 2

作为每行的最大值并进行嵌套循环。

let lines = 10,
    value = 1;

for (let i = 1; i <= lines; i++) {
    let line = '',
        l = (i * (i + 1)) / 2;
    while (value <= l) line += (line && ' ') + value++;
    console.log(line);
}
.as-console-wrapper { max-height: 100% !important; top: 0; }