私はいくつかの文字列が別の文字列(サブ)が含まれているかどうかを確認する必要があるので、 は、誰かがこれの1が速く実行している私に言うことができます。JavaScriptで部分文字列を検索する場合、どのソリューションの方が高速ですか?
someString.includes(thisSubstring) or
someString.indexOf(thisSubstring) !== -1
これは、ブラウザから依存しますか?速い解決策はありますか?
私はいくつかの文字列が別の文字列(サブ)が含まれているかどうかを確認する必要があるので、 は、誰かがこれの1が速く実行している私に言うことができます。JavaScriptで部分文字列を検索する場合、どのソリューションの方が高速ですか?
someString.includes(thisSubstring) or
someString.indexOf(thisSubstring) !== -1
これは、ブラウザから依存しますか?速い解決策はありますか?
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);
なぜ[https://jsperf.com/ ](https://jsperf.com/faq#what)? – Prusse
@Prusseこれは複雑さの問題であれば、私はおそらくそう思っていましたが、このシンプルなツールをOPに提供したいと思っていましたが、ログを表示するツール(プライベートユニットテスト、クイックパフォーマンステストなど)最も簡単な性能テストパターン。 –
はそれを自分自身を測定します。 –
https://jsfiddle.net/にアクセスし、文字列を作成し、n回反復するタイマーを使用してループを作成し、n個のインクルードチェックを実行します。その後、 'n個の' 'indexof'チェックを実行するタイマを持つ別のループ。そして、ここに戻って、あなたの答えと一緒にフィドルを掲示してください。 – Forklift
検索を使用します。それはhttp://stackoverflow.com/questions/5296268/fastestway-to-check-a-string-contain-another-substring-in-javascriptの複製です – Zefick