Я вижу, что indexOf работает быстрее, когда вы сканируете одно слово в соответствии с решением здесь JavaScript: indexOf и Match при поиске строк?
Однако что, если у вас есть список, скажем, из 5 ключевых слов, и вы хотите подсчитать появление каждого из них (при условии, что каждое слово появляется только один раз в строке большого текста).
Ниже будет быстрее?
var list1 = ['word1', 'word2','word3','word4','word5'];
for (var i = 0; i < list1.length; i++){
if (exampleLargeText.indexOf(list1[i]) > -1){
keywordCounter++;
}
}
vs....
var keywordRegex = 'word1|word2|word3|word4|word5'];
var keywordCounter = exampleLargeText.toLowerCase().match(new RegExp(SUBMIT_ELEMENT_REGEX , "ig")) || []).length
Является ли indexOf() по-прежнему быстрее, несмотря на то, что вы сканируете exampleLargeText 5 раз?