簡體   English   中英

使用JS循環形成倒置的ascii三角圖

[英]Forming an inverted ascii triangle art using JS looping

沒有嵌套循環,您如何形成這樣的ascii藝術?

####
###
##
#

這是我目前擁有的:

function invertTriangle (row) {
  var asteric = "*" * row;
  for ( var y=row; y>=row; y--){
      asteric = asteric - "*";
      console.log(asteric);
  }
};

invertTriangle(10);

感謝您的幫助和解釋!

謝謝!

嘗試:

 var string = ""; for (var i = 0, j = 4, k = 4; i < 10; i++) { string += "*"; if (--j === 0) { j = --k; string += "\\n"; } } alert(string); 

希望能有所幫助。

這是使用遞歸的一種方法。

基本上,您以第一行中要打印的字符數調用該函數。 然后,它構造一個包含這么多字符的字符串。 然后,它減少所需的字符數,如果該字符數大於0,則再次調用自身並將新結果添加到當前結果中。 這一直持續到我們到達需要零個字符的行為止。 此時,該函數不再調用自身,並且將完全構造的字符串返回給原始調用者。

碼:

<!DOCTYPE html>
<html>
<head>
<script>
"use strict";
function byId(e){return document.getElementById(e);}

window.addEventListener('load', onDocLoaded, false);

function onDocLoaded()
{
    byId('triTgt').innerText = makeTriString(40);
}

function makeTriString(nStars)
{
    var str = '';
    for (var i=0; i<nStars; i++)
        str += "*";
    str += "\n";
    nStars--;
    if (nStars > 0)
        str += makeTriString(nStars);
    return str;
}
</script>
<style>
</style>
</head>
<body>
    <div id='triTgt'></div>
</body>
</html>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM