問題: JavaScript で指定された文字列に事前定義された配列の部分文字列が含まれているかどうかを効率的に判断する方法?
解決策:
このタスクには 2 つのアプローチが可能です。
array.some() メソッドを使用すると、配列内の少なくとも 1 つの要素が指定された条件を満たすかどうかを確認できます。次のように利用できます:
<code class="javascript">if (substrings.some(function(v) { return str.indexOf(v) >= 0; })) { // There's at least one matching substring }</code>
または、アロー関数と include() メソッドを使用します:
<code class="javascript">if (substrings.some(v => str.includes(v))) { // There's at least one matching substring }</code>
このタイプの検索用に特別に設計された組み込み関数はありませんが、目的の部分文字列に一致する正規表現を構築し、文字列に対して test() メソッドを使用できます。ただし、このアプローチは、大きな配列や文字列の場合、計算コストが高くなる可能性があります。
<code class="javascript">const regex = new RegExp(`( ${substrings.join(' | ')} )`, 'g'); if (regex.test(str)) { // There's at least one matching substring }</code>
次の部分文字列と 2 つの異なる文字列の配列を考えてみましょう:
<code class="javascript">const substrings = ["one", "two", "three"]; let str1 = "this has one"; let str2 = "this doesn't have any";</code>
array.some() アプローチの使用:
<code class="javascript">if (substrings.some(v => str1.includes(v))) { console.log(`Match using "${str1}"`); } else { console.log(`No match using "${str1}"`); }</code>
出力:
Match using "this has one"
<code class="javascript">if (substrings.some(v => str2.includes(v))) { console.log(`Match using "${str2}"`); } else { console.log(`No match using "${str2}"`); }</code>
出力:
No match using "this doesn't have any"
以上がJavaScript で配列の部分文字列の一致を効率的にチェックするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。