首页 > 解决方案 > javascript中带有循环的树练习

问题描述

我想用 *. 我每次都会给出一个数字以指定树的高度。如果我给数字 4 作为高度,它应该看起来像这样:

    *
   ***
  *****
 *******

我希望树使用 console.log 出现

我已经这样做了:

var size = 4;

document.write(
  "<center>" + Array.apply(0, new Array(size)).map(function(_, i) {
    return new Array((i + 1) * 2).join(" * ");
  }).join("<br>") + "</center>"
);

但如果我使用 console.log 它不起作用

标签: javascriptloops

解决方案


您只需要计算每层左侧的空间。最深的开始于j=0。上面的地板j=1。等等。

给定一个高度h

  • 楼层 h-1->j=0
  • 楼层 h-2->j=1
  • 楼层 0->j=h-1

请注意,如果您从 floor 开始0,您会j=h-1在随后的每个楼层获得并删除一个空间。

因此,您可以简单地编写

    const h = 4;
    console.log(Array(h).fill(0).map((_,i)=>{
        return ' '.repeat(h-1-i)+'*'.repeat(i*2+1)
    }).join('\n'))


推荐阅读