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