javascript中带有循环的树练习
我想用*创建一棵树。我每次都会给出一个数字,以指定树的高度。 如果我给数字4作为高度,它应该是这样的,例如:javascript中带有循环的树练习,javascript,loops,Javascript,Loops,我想用*创建一棵树。我每次都会给出一个数字,以指定树的高度。 如果我给数字4作为高度,它应该是这样的,例如: * *** ***** ******* 我希望使用console.log显示树 我已经做到了: var size=4; document.write( “”+Array.apply(0,新数组(大小)).map(函数(1;,i){ 返回新数组((i+1)*2); }).join(“”)+“” );您只需要计算每层楼左边的空间。 最深的一个开始于j=0。在j=1上的
*
***
*****
*******
我希望使用console.log显示树
我已经做到了:
var size=4;
document.write(
“”+Array.apply(0,新数组(大小)).map(函数(1;,i){
返回新数组((i+1)*2);
}).join(“
”)+“”
);代码>您只需要计算每层楼左边的空间。
最深的一个开始于j=0
。在j=1
上的楼层。等等
给定高度h
- 楼层h-1->j=0
- 楼层h-2->j=1
- 楼层0->j=h-1
请注意,如果从楼层0
开始,将得到j=h-1
,并在随后的每一层删除一个空间
这样你就可以轻松地写作了
常数h=4;
console.log(数组(h).fill(0).map(((i,i)=>{
返回“”。重复(h-1-i)+'*'。重复(i*2+1)
}).join('\n')
以清除我的评论。您将无法在控制台中显示html。所以你需要忘记标签。当你打印这棵树时,你应该知道它有多大(高)。所以你知道有多少空间会在你的恒星前面
空间数由总高度给出-从上到下的当前“标高”-1
恒星的数量是当前“等级”的2倍加1
let spaces=”“.重复(高度-i-1);
让stars=“*”。重复(i*2+1);
因此,只需使用一个循环,从上到下遍历树的所有级别,并将空间和星星连在一起
下面是一个关于如何工作的示例(示例还打印到文本区域以供预览以及在控制台中)
我创建了这样一个
function drawTree(height) {
for ( let i = 0; i < height ; i++ ) {
let star = '*';
let space = ' ';
for ( let j = 1; j <= i; j++ ) {
star = star + '**';
}
let gap = space.repeat(height-i-1);
star = gap + star;
console.log(star);
}
}
let number = prompt('Give number for tree height');
drawTree(number);
函数绘图树(高度){
for(设i=0;i 对于(让j=1;j,您将无法在控制台中显示html代码。请使用以下方法。因为您使用的是单空格字体的控制台输出。因此,当您还知道要打印多少行时,您就知道每个行前面有多少空格。因此,只需使用console.log(ysspaces+z*[stars])循环X次即可@relief.melone我不知道我要打印多少行。它应该可以与任何给定的数字一起工作。我只是以4为例。你不喜欢用printTree(4)之类的东西调用函数吗?我的意思是,你如何决定树应该有多高?