Heim > Web-Frontend > js-Tutorial > 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
Freigeben: 2024-10-31 09:03:29
Original
274 Leute haben es durchsucht

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

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>
Nach dem Login kopieren

Ausgabe:

Match using "this has one"
Nach dem Login kopieren
<code class="javascript">if (substrings.some(v => str2.includes(v))) {
  console.log(`Match using "${str2}"`);
} else {
  console.log(`No match using "${str2}"`);
}</code>
Nach dem Login kopieren

Ausgabe:

No match using "this doesn't have any"
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage