【发布时间】:2015-08-19 17:04:48
【问题描述】:
根据JavaScript: indexOf vs. Match when Searching Strings?JavaScript: indexOf vs. Match when Searching Strings? 处的解决方案,当您扫描一个单词时,我发现 indexOf 更快
但是,如果您有一个包含 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
尽管您在这里扫描 exampleLargeText 5 次,但 indexOf() 是否仍然更快?
【问题讨论】:
-
测试一下。这是找出答案的唯一方法。
标签: javascript regex indexof