2016-07-25 21 views
0

Ich muss ein Dreieck aus '#' zu drucken.JavaScript-Druck Dreieck funktioniert nicht wie erwartet

Dies ist mein Code:

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); 

Für diesen Eingang erhalte ich:

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

Aber ich möchte bekommen:

# 
## 
### 
#### 

Was in meinem Code falsch? Dank

+1

Sie nicht zurücksetzen 'Text' innerhalb der Schleife. Also wird jede Zeile an die letzte angehängt. – Sirko

+2

Als Option können Sie 'for (var i = 1; i <= n; i ++) { console.log ('#' .wiederholung (i)); } '. – Tushar

+0

@Tushar Sehr informativ, In der Tat. –

Antwort

4

Versuchen Sie, Ihre text in der äußeren for-Schleife zu löschen,

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

Voll Code wäre,

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

Sie brauchen nicht zwei Schleifen dafür. anhängen nur ein Zeichen in jeder Iteration und drucken Sie es aus:

var text = ""; 

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

//prints for n=8: 

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

Sie Schleife auf diese Weise tun können:

<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

Verwandte Themen