Просмотр полной версии : Split method
Всем привет!
Народ, видел ли кто оптимизированный метод split? Уж больно базовый тормозит.
Hi!
И все молчат... Ужели никто не видел?
Эх, люди... Ну что, ж сами и напишем.
;)
Ну не знаю, оптимизация нужна только для пятого плейера,
шестерошный сплит работает лучше любого оптимизированного,
для пятого вот:
//-------------------------------------------------------------------------
// split
//-------------------------------------------------------------------------
String.prototype.OldSplit = String.prototype.split;
//Link to old split function
String.prototype.split = function(str)
{ //Create new split function
if(str.length>1)return this.OldSplit(str);
if (str == "" || str == null) return this.toCharArray();
var result = new Array();
var d = this.length;
var n = 0;
var tmpStr = "";
var ch;
while(n<d)
{
//ch = this.charAt(n++);
ch = substring(this ,++n, 1);
if(ch==str)
{
result.push(tmpStr);
tmpStr="";
}else{
tmpStr += ch;
}
}
result.push(tmpStr);
return result;
}
//-------------------------------------------------------------------------
// convert string to char array
//-------------------------------------------------------------------------
String.prototype.toCharArray = function()
{
var st = this;
var arr_result = new Array();
for (var s=0;s < st.length;s++)
{
arr_result.push(substring(this, s+1, 1));
}
return arr_result;
}
//-------------------------------------------------------------------------
// charAt
//-------------------------------------------------------------------------
String.prototype.charAt = function(index)
{
return(substring(this, index+1, 1));
}
//-------------------------------------------------------------------------
// replace
//-------------------------------------------------------------------------
String.prototype.replace = function()
{
return this.split(arguments[0]).join(arguments[1]);
}
Мне как раз для 5. Спасибо! То, что надо.
Работает действительно быстрее. Но не будет ли работа с XML еще быстрее, если речь идет о простой 2-х уровневой текстовой структуре?
Работает на vBulletin ® версия 3.7.3. Copyright ©2000-2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Copyright © 1999-2008 Flasher.ru. All rights reserved.