用数字绘制一个三角形(javascript)

时间:2019-02-16 14:18:08

标签: javascript

我写了这种绘制三角形的方法。例如,如果调用drawTriangle(5),将得到以下输出:  enter image description here

这是我的代码:-

function drawTriangle(t){

for (let i=1; i <= t; i++)
{

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

    console.log("\n");
}

}
let t = 5 ;
drawTriangle(t);

我得到这个输出 enter image description here

我无法将它们排成一排,我不知道问题出在哪里。

4 个答案:

答案 0 :(得分:1)

console.log()每次都会打印一行,将每一行存储在一个变量中,并在innerLoop的末尾打印

function drawTriangle(t){

  for (let i=1; i <= t; i++)
  {
    let eachLine = ''

      for (let j=1; j<=i; j++)
      {
        eachLine += j + " "
      }
      eachLine = eachLine.trim();
      console.log(eachLine);
  }

}

let t = 5 ;
drawTriangle(t);

答案 1 :(得分:0)

请参阅this。您可以在内部for循环中使用字符串连接。

答案 2 :(得分:0)

其他答案已经在代码中指定了您错过的内容。

如果您想查看其他解决方案,我会添加它

let n = 1;
let op = ''

while(n<=5){
  op+=new Array(n).fill(0).map( (e,i) => i+1 ).join(' ') + '\n'
  n++
}

console.log(op)

答案 3 :(得分:0)

这是一个线性时间复杂度的解决方案-仅console.log(draw(n)),其中n是一个整数,以查看结果:

function draw(n) {
  let triangle = '';
  let prev;
  for (let i = 1; i <= n; i++) {
    if (prev) {
      triangle += '\n';
      prev = prev + ' ' + i;
    } else {
      prev = i;
    }
    triangle += prev;
  }
  return triangle;
}