Skip to content

Instantly share code, notes, and snippets.

@yuercl
Created March 24, 2016 06:14
Show Gist options
  • Save yuercl/a14876adba8f31b88374 to your computer and use it in GitHub Desktop.
Save yuercl/a14876adba8f31b88374 to your computer and use it in GitHub Desktop.
none
function leftpad1(str, len, ch) {
if (!ch&&ch!=0) ch=' ';
len = len - str.length;
var pad = ''; var i = -1;
while (++i < len) {
pad = ch + pad;
}
return pad+str;
}
function leftpad2(str, len, ch) {
if (!ch&&ch!=0) ch=' ';
len = len - str.length;
var pad = Array(len+1).join(ch);
return pad+str;
}
function leftpad3(str, len, ch) {
if (!ch&&ch!=0) ch=' ';
len = len - str.length;
var pad = ''; while (true) {
if (len&1) pad += ch;
if (len>>=1) ch += ch;
else break;
}
return pad+str;
}
var leftpad4 = (str,n,ch) => ((new Array(n)).join(ch||' ') + str).slice(-Math.max(n, str.length));
var t1 = Math.round(new Date().getTime());
var tmp = leftpad1("233", 10000000, '*');
var t2 = Math.round(new Date().getTime());
console.log(tmp.length);
console.log('leftpad1: ' + String(t2-t1));
var t1 = Math.round(new Date().getTime());
var tmp = leftpad2("233", 10000000, '*');
var t2 = Math.round(new Date().getTime());
console.log(tmp.length);
console.log('leftpad2: ' + String(t2-t1));
var t1 = Math.round(new Date().getTime());
var tmp = leftpad3("233", 10000000, '*');
var t2 = Math.round(new Date().getTime());
console.log(tmp.length);
console.log('leftpad3: ' + String(t2-t1));
var t1 = Math.round(new Date().getTime());
var tmp = leftpad4("233", 10000000, '*');
var t2 = Math.round(new Date().getTime());
console.log(tmp.length);
console.log('leftpad4: ' + String(t2-t1));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment