2017-04-20 5 views
-4

Ich möchte Treppe von Symbolen "#" ausgeben. Es sollte wie folgt aussieht:Create Treppe von Symbolen

enter image description here

aber alles, was ich erreichen, ist dies:

enter image description here

Was soll ich tun richtige Ausgabe zu erhalten?

var n = 6; 
var rows=[]; 
var cols=[]; 

for(i=n-1;i>=0;i--) { 
    rows=[]; 
    for(j=0;j<n;j++) { 
     if(j >= i) { 
      rows[j] = "#"; 
     } else { 
      rows[j] = ""; 
     } 
    } 

    cols.push(rows); 
    cols.splice(0, cols.length - 1); 
    console.log(cols.join(",")); 
} 
+1

Was Sie ist verwirrend? Die Kommas, zu denen Sie explizit aufgefordert werden, oder das Fehlen von Leerzeichen, wenn Sie leere Zeichenfolgen anstelle von Leerzeichen einfügen? –

+0

@RowlandShaw Ich möchte Elemente des Arrays "cols" noch einmal verbinden, um Kommas zu entfernen, aber ich kann nicht wegen des Fehlers. Mein Ziel ist es, eine Aufgabe zu übergeben, aber der Compiler sagt mir, dass die Antwort falsch ist. Hier ist ein scrshot: [link] (http://e-englishfirst.ru/i/output.jpg) – IndigoHollow

Antwort

0

Betrachten Sie es als ein Koordinatensystem, durchlaufen Sie y und x und fügen Sie die benötigten Symbole hinzu.

Denken Sie daran, max x mit aktuellen y zu erhöhen, wenn Sie es doppelseitig wollen.

function ladder(size, dualSided, empty, occupied) { 
 
    if (dualSided === void 0) { dualSided = true; } 
 
    if (empty === void 0) { empty = " "; } 
 
    if (occupied === void 0) { occupied = "▲"; } 
 
    var str = ""; 
 
    for (var y = 0; y < size; y++) { 
 
     for (var x = 0; x < size + y; x++) { 
 
      if (dualSided != true && x == size) { 
 
       break; 
 
      } 
 
      if (x >= size - y - 1) { 
 
       str += occupied; 
 
      } 
 
      else { 
 
       str += empty; 
 
      } 
 
     } 
 
     str += "\n"; 
 
    } 
 
    return str; 
 
} 
 
console.log(ladder(20, false));

+0

Danke! Das funktioniert gut! – IndigoHollow

0

Ok, versuchen Sie es (die letzten 3 Zeilen);

cols.push(rows.join("")); 
cols.splice(0, cols.length - 1); 
console.log(cols.join("")); 

Das Problem ist, dass Sie Array (Zeile) in Spalten drücken, wo Zeile Array selbst Komma enthält. Wenn Sie cols.spush (rows.join ("")) tun, wird das gesamte Komma entfernt.

+0

Vielen Dank! Aber die Ausgabe ist umgekehrt: [link] (http://e-englishfirst.ru/i/outpu1.jpg) cols.reverse() hat nicht geholfen. – IndigoHollow