У меня есть объект, в котором хранятся пары для поиска и замены, которые я выполняю для до 1500 строк одновременно.
Объект заполняется парами с использованием метода, который принимает строку, а затем сохраняетэто свойство со значением, являющимся автоматически назначаемым базовым номером 36, например:
function addShort(long:String):void
{
_pairs[long] = _nextShort;
}
_nextShort
возвращает автоматически увеличенное значение, являющееся предметом .toString(36)
, поэтому выполните приведенное выше несколько раз_pairs
может выглядеть так:
_pairs:Object = {
"class": "0",
"testing.objects.TestBlock": "1",
"skin.x": "2",
"skin.y": "3",
...........
"someString": "az1"
};
Этот объект может оказаться очень большим, если в нем будет храниться более пары сотен пар.
У меня тогда будет метод, который будет принимать"длинная" строка (которая будет включать строки, которые я передал addShort()
ранее) и возвращать новую строку, где они были заменены соответствующими короткими значениями.
Метод выглядит следующим образом:
public function shorten(long:String):String
{
for(var i:String in _pairs)
long = long.split(i).join(_pairs[i]);
return long;
}
Очень просто, однако, на мой взгляд, я предвижу серьезную проблему в случае, когда мне может понадобиться «сократить» строки 2000+ и_pairs
В то же время объект имеет более 500 пар.
В итоге получается 1 000 000 итераций, что, очевидно, не очень эффективно.
Как я могу улучшить это?процесс значительно?