diff options
author | 迷渡 <justjavac@gmail.com> | 2019-09-04 22:32:28 +0800 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2019-09-04 10:32:28 -0400 |
commit | eea856e341a5381c6a5744db1ee6fe590cf8ffd3 (patch) | |
tree | ee89b85b843e08f224e1da8615ddbb56fe2fe270 /fmt/sprintf.ts | |
parent | be9aaa664a919d3076a6072c30a2e4fbdd8fa578 (diff) |
Refactoring using padEnd and padStart (denoland/deno_std#583)
Original: https://github.com/denoland/deno_std/commit/4e21ace634b635ef540adc7727cd3d8eb9df99bd
Diffstat (limited to 'fmt/sprintf.ts')
-rw-r--r-- | fmt/sprintf.ts | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/fmt/sprintf.ts b/fmt/sprintf.ts index 596f90c85..e1edb1347 100644 --- a/fmt/sprintf.ts +++ b/fmt/sprintf.ts @@ -365,14 +365,12 @@ class Printf { pad(s: string): string { const padding = this.flags.zero ? "0" : " "; - while (s.length < this.flags.width) { - if (this.flags.dash) { - s += padding; - } else { - s = padding + s; - } + + if (this.flags.dash) { + return s.padEnd(this.flags.width, padding); } - return s; + + return s.padStart(this.flags.width, padding); } padNum(nStr: string, neg: boolean): string { let sign: string; @@ -393,13 +391,12 @@ class Printf { const pad = zero ? "0" : " "; const len = zero ? this.flags.width - sign.length : this.flags.width; - while (nStr.length < len) { - if (this.flags.dash) { - nStr += pad; // left justify - right pad - } else { - nStr = pad + nStr; // right just - left pad - } + if (this.flags.dash) { + nStr = nStr.padEnd(len, pad); + } else { + nStr = nStr.padStart(len, pad); } + if (zero) { // see above nStr = sign + nStr; |