什么解决方案在JavaScript中搜索子字符串的速度更快?

时间:2017-02-15 13:43:07

标签: javascript string performance

我需要检查一些字符串是否包含另一个字符串(substring) 谁能告诉我哪一项表现得更快:

someString.includes(thisSubstring) or 
someString.indexOf(thisSubstring) !== -1 

这取决于浏览器?有没有更快的解决方案?

1 个答案:

答案 0 :(得分:3)

indexOf速度更快,但您可以轻松自行运行这些测试。

将来您可以使用以下模式来衡量执行时间:



var str1 = "nananananaananana Catman!";
var str2 = "Catman!";
var max = 10000000;
var t = new Date();
for(var i = 0; i < max; i++) {
  str1.indexOf(str2) >= 0;
}
console.log("indexOf",new Date() - t);
t = new Date();
for(var i = 0; i < max; i++) {
  str1.includes(str2);
}
console.log("includes",new Date() - t);
t = new Date();
for(var i = 0; i < max; i++) {
  str1.indexOf(str2) >= 0;
}
console.log("indexOf",new Date() - t);
t = new Date();
for(var i = 0; i < max; i++) {
  str1.includes(str2);
}
console.log("includes",new Date() - t);
&#13;
&#13;
&#13;