您的位置:首页 > Web前端 > JavaScript

javascript-leftpad方法

2016-03-24 17:04 435 查看
原由是微博上出的一则leftpad方法被吐槽的事。

原方法是通过循环挨个拼接字符串的方式,所以效率差了点(会产生N多string对象,导致对象回收慢)

类似

for(i=0;i<cnt;i++){

  str=pad+str;

}

改进如下:

//cache
var padding1="00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000";
var padding2=" ";
function leftpad(str,length,useSpace){
var padding = padding1;
if(useSpace){
padding = padding2;
}

var cnt = length-str.length;

if(cnt<=0) return str;
if(cnt<=200) return padding.substring(0,cnt)+str;

str=padding+str;
return leftpad(str,length,ch);
}

思路:

1.减少string对象的生成,所以尽量减少字符串拼接的次数

2.降低时间复杂度

该方法只支持0和空格的pad.如果需要支持其他字符,则不适用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  javascript leftpad