Überprüfung eines Strings in einem TypeScript-Array: Optimierung und Geschwindigkeit

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

Einleitung: "Ist mein String hier drin?" – die ewige Frage des Entwicklers

Sie schreiben Code in TypeScript und plötzlich stellt sich die Frage: "Wie kann ich prüfen, ob ein bestimmter String in einem Array vorhanden ist?" Scheinbar eine Kleinigkeit, aber davon hängt die Funktionsfähigkeit von Filtern, Formularvalidierung, Listensuche und Hunderten anderer Szenarien ab. Diese Frage auf Stack Overflow hat tausende Aufrufe – das bedeutet, sie quält nicht nur Anfänger, sondern auch erfahrene Entwickler.

Heute werden wir alle legitimen Methoden zur Prüfung, ob ein String in einem TypeScript-Array vorhanden ist, durchgehen. Aber wir werden die Methoden nicht nur auflisten – wir werfen einen Blick unter die Haube der Leistung, erfahren, welche Variante schneller ist und wann man fortgeschrittene Datenstrukturen verwenden sollte. Sie werden lernen, wie man nicht nur funktionierenden, sondern schnellen und eleganten Code schreibt.

Los geht's! 🚀



Die Methode includes(): Einfachheit und Lesbarkeit

Der offensichtlichste und modernste Weg ist die Methode includes(). Sie wurde in ES2016 eingeführt und wird nativ von TypeScript unterstützt. Alles, was Sie tun müssen, ist, sie auf dem Array aufzurufen und den gesuchten String zu übergeben.

const fruits: string[] = ['Apfel', 'Banane', 'Orange', 'Kiwi'];const searchTerm: string = 'Banane';

if (fruits.includes(searchTerm)) { console.log('Frucht gefunden! 🍌');} else { console.log('Diese Frucht gibt es nicht.');}

Vorteile:

  • Maximal lesbarer Code – sofort verständlich, was wir tun.
  • Gibt einen boolean zurück – ideal für Bedingungen.
  • Unterstützt die strenge Typisierung von TypeScript.

Nachteile:

  • Lineare Suche O(n) – kann bei sehr großen Arrays (Zehntausende von Elementen) langsam sein.
  • Funktioniert nicht mit NaN (aber das ist bei Strings selten).

Für 90% der Aufgaben ist includes() Ihre Wahl. Einfach, zuverlässig, schnell.



Die Methode indexOf(): Alt, aber bewährt

Vor dem Erscheinen von includes() haben alle indexOf() verwendet. Es gibt ebenfalls den Index des Elements zurück, aber wenn das Element nicht vorhanden ist, gibt es -1 zurück. Die Prüfung auf -1 ist zum Klassiker geworden.

const languages: string[] = ['JavaScript', 'TypeScript', 'Python', 'Go'];const target: string = 'TypeScript';

if (languages.indexOf(target) !== -1) { console.log('Sprache gefunden!');} else { console.log('Sprache nicht in der Liste.');}

Vorteile:

  • Funktioniert in allen Umgebungen, sogar in alten Browsern (falls das wichtig ist).
  • Man kann die Position des Elements für weitere Aktionen erhalten.

Nachteile:

  • Weniger lesbar – man muss sich an -1 erinnern.
  • Gleiche Komplexität O(n).
  • TypeScript kann sich über implizite Vergleiche beschweren; besser den Typ explizit angeben.

Tipp: Wenn Sie den Index nicht benötigen, verwenden Sie includes(). Aber indexOf() zu kennen, ist nützlich – es kommt in Legacy-Code vor.



Die Methode find(): Wenn mehr als nur true/false benötigt wird

Die Methode find() gibt das erste Element zurück, das die Bedingung erfüllt, oder undefined, wenn nichts gefunden wurde. Dies ist ein mächtiges Werkzeug, wenn Sie nicht nur einen String, sondern ein Objekt mit einem bestimmten Feld suchen.

interface User {  id: number;  name: string;}

const users: User[] = [ { id: 1, name: 'Anna' }, { id: 2, name: 'Boris' }, { id: 3, name: 'Viktor' }];

const foundUser = users.find(user => user.name === 'Boris');

if (foundUser) { console.log(`Benutzer gefunden: ${foundUser.name}`);}

Für einfache String-Arrays ist find() überdimensioniert, aber wenn Sie das Element selbst erhalten oder eine komplexe Bedingung prüfen müssen, ist dies die beste Wahl.

Leistung: ebenfalls O(n), aber aufgrund des Callback-Aufrufs bei jeder Iteration etwas langsamer als includes().



Optimierung mit Set: Wenn Geschwindigkeit kritisch ist

Wenn Sie das Vorhandensein von

Blogs

Buchempfehlungen