Heim  >  Artikel  >  Web-Frontend  >  Wie kann man in JavaScript effizient nach Teilstring-Übereinstimmungen in einem Array suchen?

Wie kann man in JavaScript effizient nach Teilstring-Übereinstimmungen in einem Array suchen?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-10-31 09:03:29161Durchsuche

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

String-Matching mit Array-Teilstrings in JavaScript

Problem: So ermitteln Sie effizient, ob ein gegebener String einen Teilstring aus einem vordefinierten Array in JavaScript enthält ?

Lösung:

Für diese Aufgabe gibt es zwei Vorgehensweisen:

1. Array.some()-Methode:

Mit der array.some()-Methode können Sie überprüfen, ob mindestens ein Element im Array eine bestimmte Bedingung erfüllt. Sie können es wie folgt verwenden:

<code class="javascript">if (substrings.some(function(v) { return str.indexOf(v) >= 0; })) {
  // There's at least one matching substring
}</code>

Oder mit Pfeilfunktionen und der include()-Methode:

<code class="javascript">if (substrings.some(v => str.includes(v))) {
  // There's at least one matching substring
}</code>

2. Regulärer Ausdruck:

Obwohl es keine integrierte Funktion gibt, die speziell für diese Art von Suche entwickelt wurde, können Sie einen regulären Ausdruck erstellen, der den gewünschten Teilzeichenfolgen entspricht, und die test()-Methode für die Zeichenfolge verwenden. Allerdings kann dieser Ansatz für große Arrays und Strings rechenintensiv sein.

<code class="javascript">const regex = new RegExp(`( ${substrings.join(' | ')} )`, 'g');
if (regex.test(str)) {
  // There's at least one matching substring
}</code>

Beispiel:

Betrachten Sie das folgende Array von Teilstrings und zwei verschiedenen Strings:

<code class="javascript">const substrings = ["one", "two", "three"];

let str1 = "this has one";
let str2 = "this doesn't have any";</code>

Verwendung des array.some()-Ansatzes:

<code class="javascript">if (substrings.some(v => str1.includes(v))) {
  console.log(`Match using "${str1}"`);
} else {
  console.log(`No match using "${str1}"`);
}</code>

Ausgabe:

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>

Ausgabe:

No match using "this doesn't have any"

Das obige ist der detaillierte Inhalt vonWie kann man in JavaScript effizient nach Teilstring-Übereinstimmungen in einem Array suchen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn