Nur zu Ihrer Information: Die Syntax ist klarer und lesbarer, IMHO.
"use strict";
String.prototype.pad = function( len, c, left ) {
var s = '',
c = ( c || ' ' ),
len = Math.max( len, 0 ) - this.length,
left = ( left || false );
while( s.length < len ) { s += c };
return ( left ? ( s + this ) : ( this + s ) );
}
Number.prototype.pad = function( len, c, left ) {
return String( this ).pad( len, c, left );
}
Number.prototype.lZpad = function( len ) {
return this.pad( len, '0', true );
}
Dies führt auch zu weniger visuellen und Lesbarkeitsstörungen der Ergebnisse als einige der anderen Lösungen, die "0" als ein Zeichen erzwingen; die Beantwortung meiner Fragen, was ich tun, wenn ich andere Zeichen auffüllen möchte, oder in die andere Richtung (rechte Auffüllung), während einfach zu tippen und klar zu lesen bleibt. Ich bin mir ziemlich sicher, dass es auch das DRY'est Beispiel ist, mit dem wenigsten Code für die eigentliche führende Null-Padding-Funktion Körper (wie die anderen abhängigen Funktionen sind weitgehend irrelevant für die Frage).
Der Code ist über gist von diesem github-Benutzer (ursprüngliche Quelle des Codes) zum Kommentieren verfügbar https://gist.github.com/Lewiscowles1986/86ed44f428a376eaa67f
Eine Anmerkung zu Konsolen- und Skripttests, numerische Literale scheinen Klammern oder eine Variable zu benötigen, um Methoden aufzurufen, so dass 2.pad(...) einen Fehler verursacht, während (2).pad(0,'#') keinen Fehler verursacht. Dies ist für alle Zahlen gleich, wie es scheint