2016-07-25 10 views
0

「#」で構成された三角形を印刷する必要があります。私が手にこの入力のJavascriptの印刷三角形が期待どおりに機能しない

function show(n){ 
    var text =""; 
for(var i=1;i<=n;i++){ 
    for(var j=1;j<=i;j++){ 
     text+='#'; 

     } 
    console.log(text); 
    } 

} 
show(4); 

は、これは私のコードです

# 
### 
###### 
########## 

しかし、私が取得したい:

# 
## 
### 
#### 

私のコードで何が悪いのでしょうか?ループの外であなたのtextをクリアするためのおかげ

+1

あなたは 'ループ内text'をリセットしません。各行は最後の行に追加されます。 – Sirko

+2

オプションとして、for(var i = 1; i <= n; i ++){ console.log( '#'。repeat(i));を使用できます。 } '。 – Tushar

+0

@Tushar非常に有益な、確かに。 –

答えて

4

は、try、完全なコードは次のようになり

for(var i=1;i<=n;i++){ 
    text = ""; 

function show(n){ 
var text; 
for(var i=1;i<=n;i++){ 
    text = ""; 
    for(var j=1;j<=i;j++){ 
     text+='#'; 
    } 
    console.log(text); 
} 
} 
show(4); 
2

あなたはそのための2つのループを必要としません。ただ、各反復で1つの文字を追加し、それをプリントアウト:

var text = ""; 

for(var i=0; i < n; i++){ 
text += "#"; 
console.log(text); 
} 

//prints for n=8: 

# 
## 
### 
#### 
##### 
###### 
####### 
######## 
0

あなたはループをこのように行うことができます。

<div id="result"></div> 
<script> 
function show(n){ 
    var text = ""; 
    for(var i=1;i<=n;i++){ 
     for(var j=1;j<=i;j++){ 
      text+='#'; 
     } 
     text+="<br/>"; 
     document.getElementById('result').innerHTML = text; 
    } 
} 
show(4); 
</script> 

Your Output

関連する問題