本篇內容主要講解“javascript怎么提升字符串拼接的效率及性能”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“javascript怎么提升字符串拼接的效率及性能”吧!
/*
利用Array對象join方法模擬 C#中的StringBuilder,提升JS中字符串拼接的效率及性能。
功能同JS文件夾下StringBuilder.js文件實現功能,
因實現方式不同且為避免沖突將此文件置于該文件夾下供月度資金計劃使用
Author : panwb
Date : 2012-11-29
*/
function StringBuilder(str)
{
//字符串數組
this.arrstr = (str === undefined ? new Array() : new Array(str.toString()));
//字符串長度(任何影響newstr字符串長度的方法都必須同時重置length)
this.length = (str === undefined ? 0 : str.length);
// 字符串模板轉換,類似于C#中的StringBuilder.Append方法
this.append = StringBuilder_append;
// 字符串模板轉換,類似于C#中的StringBuilder.AppendFormat方法
this.appendFormat = StringBuilder_appendFormat;
//重寫toString()方法
this.toString = StringBuilder_toString;
//重寫replace()方法
this.replace = StringBuilder_replace;
//添加remove()方法
this.remove = StringBuilder_remove;
//從當前實例中移除所有字符
this.clear = StringBuilder_clear;
}
// 字符串模板轉換,類似于C#中的StringBuilder.Append方法
function StringBuilder_append(f)
{
if (f === undefined || f === null)
{
return this;
}
this.arrstr.push(f);
this.length += f.length;
return this;
}
// 字符串模板轉換,類似于C#中的StringBuilder.AppendFormat方法
function StringBuilder_appendFormat(f)
{
if (f === undefined || f === null)
{
return this;
}
//存儲參數,避免replace回調函數中無法獲取調用該方法傳過來的參數
var params = arguments;
var newstr = f.toString().replace(/\{(\d+)\}/g,
function (i, h) { return params[parseInt(h, 10) + 1]; });
this.arrstr.push(newstr);
this.length += newstr.length;
return this;
}
//重寫toString()方法
function StringBuilder_toString()
{
return this.arrstr.join('');
}
//重新replace()方法
function StringBuilder_replace()
{
if (arguments.length >= 1)
{
var newstr = this.arrstr.join('').replace(arguments[0], arguments[1]);
this.arrstr.length = 0;
this.length = newstr.length;
this.arrstr.push(newstr);
}
return this;
}
//添加remove()方法
function StringBuilder_remove()
{
if (arguments.length > 0)
{
var oldstr = this.arrstr.join('');
var substr = (arguments.length >= 2 ?
oldstr.substring(arguments[0], arguments[1]) : oldstr.substring(arguments[0]));
var newstr = oldstr.replace(substr, "");
this.arrstr.length = 0;
this.length = newstr.length;
this.arrstr.push(newstr);
}
return this;
}
//從當前實例中移除所有字符
function StringBuilder_clear()
{
this.arrstr.length = 0;
this.length = 0;
return this;
}到此,相信大家對“javascript怎么提升字符串拼接的效率及性能”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。