1. 程式人生 > >高效的JS 拼接字串

高效的JS 拼接字串

今天在JS裡面碰到迴圈數組裡面拼接字串,可想而知那速率肯定不高,所以就上網不斷的查詢資料來提高拼接的效率,然而網上的拼接方法和java裡面的還是不同

一下是網上的方法:

function StringBuilder()
{
   this.data=Array("");
}
StringBuilder.prototype.append=function()
{
   this.data.push(arguments[0]);
}
StringBuilder.prototype.toString=function()
{
   return this.data.join("");
}

按照上面的方法寫了,但是發現無法如下使用:
str.append("1").append("2");

只能:
str.append("1");
str.append("2");
看到這裡可能就有人說了每次拼接都得重新寫一遍"str",太麻煩了,確實,如果陣列很大的話,那不是得重複勞動,

於是研究他的程式碼發現append()方法是StringBuilder的方法,也就是append()方法裡面的"this'變數,所以基於以上的程式碼,我稍微改動了一下就可以和java裡面一樣使用了

如下:

function StringBuilder()
{
   this.data=Array("");
}
StringBuilder.prototype.append=function()
{
   this.data.push(arguments[0]);
   return this;
}
StringBuilder.prototype.toString=function()
{
   return this.data.join("");
}

在append裡面直接返回"this",那麼下一個append的呼叫者就又變成了StringBuilder.這樣就可以直接拼接append方法了

方便了很多