Heim > Artikel > Web-Frontend > Wie kann man in JavaScript effizient nach Teilstring-Übereinstimmungen in einem Array suchen?
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:
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>
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>
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!