Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Удаление фраз из строки (https://javascript.ru/forum/dom-window/50380-udalenie-fraz-iz-stroki.html)

ksa 25.09.2014 09:21

Цитата:

Сообщение от WorM32
Если взять другую строку( например, в 100 раз длиннее текущей) результат может быть совершенно противоположным.

Путем копирования увеличил строку по такому принципу

var value = "'abc','dbf','fsdf','4444','dbf','fsdf','4444','dbf','fsdf','4444','fsdfdsf'"

Добавил ооочень много раз (более 100раз)
Вот результат теста

Код 1
Цитата:

Результат (больше - лучше): ≈ 38 376 выполнений/1000 мс
Код 2
Цитата:

Результат (больше - лучше): ≈ 166 282 выполнений/1000 мс

WorM32 25.09.2014 09:27

Цитата:

Сообщение от ksa (Сообщение 332184)
Сделать массив, выполнить в нем поиск, удалить найденый элемент, переделать в строку - это проще понять, нежели замена простого регулярного выражения в строке на пустую строку?

Для тех кто не знает регулярки - да. ТС, между прочим, это доказал.

Цитата:

Сообщение от ksa (Сообщение 332184)
Вот тут бы тестом тем это подтвердить... :D

Да без проблем. Размножил строку x 100.

Код 1: Результат (больше - лучше): ≈ 157 863 выполнений/1000 мс
Код 2: Результат (больше - лучше): ≈ 92 441 выполнений/1000 мс

ksa 25.09.2014 09:30

Цитата:

Сообщение от WorM32
Да без проблем. Размножил строку x 100.

По какому принципу "множил"? :)

ksa 25.09.2014 09:33

Если просто копировал ее всю - тебе придется дописывать цикл, для удаления всех ключевых фраз, а не одной, как у тебя сейчас.
Поскольку регулярка-то замент именно все фразы...

ksa 25.09.2014 09:34

Цитата:

Сообщение от WorM32
Для тех кто не знает регулярки - да. ТС, между прочим, это доказал.

ТС и с массивами не умеет работать... Это он так же "доказал". :D

WorM32 25.09.2014 09:48

ksa,
Переделал тест в самый худший вариант, когда искомая строка находится в самом конце. Первый код проигрывает второму на 12%.

Еще есть такой тест, но это немного не то.
http://jsperf.com/string-vs-array-indexof/2

kostyanet 26.09.2014 16:19

Задача изначально бредовая, вся на костылях, но автор и под пытками не расколется чего он там отслеживает. Или расколется? ;)


Часовой пояс GMT +3, время: 00:19.