ホームページ > ウェブフロントエンド > jsチュートリアル > JavaScript で配列の部分文字列の一致を効率的にチェックするにはどうすればよいですか?

JavaScript で配列の部分文字列の一致を効率的にチェックするにはどうすればよいですか?

Mary-Kate Olsen
リリース: 2024-10-31 09:03:29
オリジナル
274 人が閲覧しました

How to Efficiently Check for Substring Matches from an Array in JavaScript?

JavaScript で配列の部分文字列と一致する文字列

問題: JavaScript で指定された文字列に事前定義された配列の部分文字列が含まれているかどうかを効率的に判断する方法?

解決策:

このタスクには 2 つのアプローチが可能です。

1. Array.some() メソッド:

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>
ログイン後にコピー

2.正規表現:

このタイプの検索用に特別に設計された組み込み関数はありませんが、目的の部分文字列に一致する正規表現を構築し、文字列に対して 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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート