[英]Tree exercise with a loop in 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 它不起作用
您只需要計算每層左側的空間。 最深的從j=0
開始。 上面j=1
處的地板。 等等。
給定高度h
,
請注意,如果您從樓層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'))
澄清我的評論。 您將無法在控制台中顯示 html。 所以你需要忘記標簽。 當您打印樹時,您應該知道它將有多大(高度)。 所以你知道你的星星之前有多少個空格。
空格數由總高度給出 - 當前從上到下的“級別” - 1
並且星數是當前“等級”的2倍加1
let spaces = " ".repeat(height-i-1);
let stars = "*".repeat(i*2+1);
所以只需使用一個循環到 go 從上到下遍歷樹的所有級別並連接空格和星號
這是一個關於它是如何工作的示例(示例還打印到文本區域以進行預覽以及在控制台中)
我創造了一個這樣的。
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);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.