高效的JS 拼接字串
阿新 • • 發佈:2019-02-01
今天在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方法了
方便了很多