2016-07-27 29 views
1

Ich versuche, ein Javascript-Puzzle zu lösen. Ich muss eine Funktion schreiben, die eine while-Schleife verwendet, um ein Zeichen am Anfang der Zeichenfolge hinzuzufügen, und dann bei der nächsten Schleife das Zeichen am Ende der Zeichenfolge und anschließend an den Anfang der Schleife hinzufügt. Die Funktion benötigt zwei Parameter, eine Zeichenfolge und eine Anzahl von Zeichen, die hinzugefügt werden sollen. Bisher habe ichAlternate Hinzufügen eines Zeichens am Anfang und Ende der Zeichenfolge

function padIt(str,n){ 
    //coding here 
    var newStr = ""; 
    var padding = "*"; 
    var i = 0; 

    while(i<=n){ 
     if (i%2===0){ 
      newStr = newStr+padding; 
     } else{ 
      newStr = padding+str; 
     } 
     i++; 
    } 
    return newStr; 
    } 

ich die ersten beiden Testfälle bin vorbei, aber es wird nicht richtig zum dritten Mal durch die Schleife arbeiten. Wir erwarten "* * a *" für n = 3, bekommen aber nur "* a". Es muss eine while-Schleife sein, so dass ich nicht weiß, ob ich die Schleife richtig einstelle oder ob ich die Variablen durcheinander bringe. Jede Hilfe wird sehr geschätzt, da ich total verloren bin.

+0

Sie benötigen '// newstr + = Polsterung Kommentar/entfernen;' Linie. –

Antwort

0

Sie können es tun, indem Code wie unten schreiben,

function padIt(str,n, pad = "*"){ 
    var left = Math.ceil(n/2), right = n - left; 
    return pad.repeat(left) + str + pad.repeat(right); 
} 

Und diese Funktion würde drucken,

console.log("a", 1); // "*a" 
console.log("a", 2); // "*a*" 
console.log("a", 10); // "*****a*****" 

Thing müssen nach der Umsetzung dieser Code zu lesen,

+1

Nicht eine while-Schleife, aber ich denke, das ist definitiv, wie ich die Variablen verwenden sollte. –

0

Sie müssen Ihre newStr+=padding; Zeile kommentieren.

Hier ist die raffinierte Code,

function padIt(str,n){ 
    //coding here 
    var newStr = ""; 
    var padding = "*"; 
    var i = 0; 

    while(i<=n){ 
    i++; 
    newStr=padding+str; 
    //newStr+=padding; 
} 

    return newStr; 

} 

HTH

Verwandte Themen