javascript - Javascript 中使用星星的圣诞树

标签 javascript

我有这个循环问题,我真的不明白为什么我的代码不起作用,我什至把它画在纸上,对于我的逻辑来说,它看起来不错,但它不起作用,请帮助我。

function drawTree(h) {
  for(var i=0; i<=h; i++){
    var star = '';
    for(var k=0; k<=1; k++){
      star += "  ";
    };
    for(var j=0; j<=i; j++) {
        star += "*";
    };
  };
    console.log(star);
};

drawTree(5);

最佳答案

查看代码中的注释以了解更改。

function drawTree(h) {
  for(var i=0; i<=h; i++){
    var star = '';
    //Changed to start high then decrease
    for(var k = 1; k <= h - i; k++){
      //shortened to one space
      star += " ";
    };
    for(var j=0; j<=i; j++) {
        //Added space so there is an odd number
        //of symbols and the star above fits
        //the space
        star += " *";
    };
    //Moved into the loop
    console.log(star);
  };
};

drawTree(5);

请注意,使用String.prototype.repeat可以大大缩短代码:

function drawTree(h) {
  for (var i = 0; i <= h; i++){
    console.log(" ".repeat(h - i) + " *".repeat(i + 1));
  };
};

drawTree(5);

另请注意,您的示例为调用 drawTree(5) 生成了一 strip 有六颗星的基线。我不确定这是否是有意的。上面的代码重现了上述行为,编辑它以显示更少的行应该不会太难。

关于javascript - Javascript 中使用星星的圣诞树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49875606/

相关文章:

javascript - HTML 模板不适用于 For-In 循环 JavaScript

javascript - 关于更改 View 和将数组放入集合中的问题 Meteor

javascript - 导入中转加密导入

javascript - 使用 jquery 检查表中的行是否具有 css 类

javascript - 数组中的子数组

javascript - 检查函数中是否缺少参数

javascript - 为什么富消息显示在内部测试器中,却不能在 Messenger 中显示?

javascript - 调整形状宽度时,旋转的形状在 y 轴上移动

javascript - 使用 (JavaScript) 客户端的数据库连接

javascript - ES6 中 let 提升的目的是什么?