4 ms·
Almost, but the existing code only pads when the str length is less than that of len.
by rybosome 11y ago
Almost, but the existing code only pads when the str length is less than that of len.
- vespakoen 11y agoAhh you are right, all makes sense now, thanks!
- chvid 11y agoYou need to go something like: module.exports = function leftpad (str, len, ch) { return Array(Math.max(0, len - String(str).length)).join(ch || ' ') + String(str); }; Unfortunately we need to wrap str twice so maybe a one-liner is not quite in place.
- gsb 11y agoAlso, this doesn't support zero padding with ch=0.
- vespakoen 11y agoCool, I like the Math.max. Two liner then str = String(str);\n...
- deleted 11y ago[deleted]
- vespakoen 11y agoSo this I guess module.exports = function leftpad (str, len, ch) { str = String(str); if (ch === 0) { ch = '0'; } return Array(Math.max(0, len - str.length)).join(ch || ' ') + str; };
- chvid 11y agoAnd I did not notice the 0 check in the original code either :-D
- vespakoen 11y agoThe array + join is slower http://jsperf.com/leftpadtesting http://jsperf.com/leftpadtesting Repeat + slice is too http://jsperf.com/leftpad http://jsperf.com/leftpad
- deleted 11y ago[deleted]