JavaScript-Array-Methoden anhand realer Szenarien erklärt
Haben Sie sich jemals die Dokumentation zu JavaScript-Array-Methoden angesehen und sich gefragt, wie zum Teufel sie im wirklichen Leben funktionieren?
Ich erinnere mich, dass ich buchstäblich meinen Kopf gegen die Wand schlug, um diese Methoden zu verstehen, als ich mit dem Codieren begann. Vertrauen Sie mir, Array-Methoden sind nicht nur dazu da, technische Interviews zu meistern, sie sind Ihre täglichen Leistungsfreunde in der realen Entwicklungswelt.
Heute zeige ich Ihnen, wann und wie Sie diese Array-Methode in realen Projekten verwenden.
Wenn Sie mit dem Lesen fertig sind, werden Sie feststellen, dass Array-Methoden Ihrem Code Klarheit und Lesbarkeit verleihen … Und, ganz zu schweigen davon, dass er dabei hilft, ihn vernünftig und wartbar zu halten.
Beginnen wir mit den Grundlagen
map() und filter()
Beginnen wir zunächst mit ein paar Array-Methoden, die Sie höchstwahrscheinlich jeden Tag verwenden werden – map() und filter().
Erstellen eines Produktpreisrechners mit map()
Sie erstellen also eine E-Commerce-Website und haben eine Liste von Produkten, die um 20 % reduziert werden müssen.
So könnten Ihre Produktdaten aussehen:
const products = [ { name: "Gaming Mouse", price: 59.99 }, { name: "Mechanical Keyboard", price: 129.99 }, { name: "4K Monitor", price: 349.99 } ];
Anstatt eine unordentliche for-Schleife zu schreiben, macht map() dies super sauber:
const discountedPrices = products.map(product => ({ ...product, price: (product.price * 0.8).toFixed(2) }));
Jeder Preis ist jetzt reduziert und wir haben alle unsere ursprünglichen Produktinformationen beibehalten. Sauber und einfach.
Erstellen einer intelligenten Suchfunktion mit filter()
Jetzt bauen wir etwas Cooleres – eine intelligente Suche, die tatsächlich über mehrere Felder hinweg funktioniert.
Nehmen wir an, wir haben diese Benutzerdaten:
const users = [ { name: "Sarah Smith", email: "sarah@gmail.com", role: "developer" }, { name: "John Doe", email: "john@company.com", role: "designer" }, { name: "Mike Wilson", email: "mike@gmail.com", role: "developer" } ];
So führen Sie die einfache Suche mit filter() durch:
const searchUsers = (query) => { return users.filter(user => user.name.toLowerCase().includes(query.toLowerCase()) || user.email.toLowerCase().includes(query.toLowerCase()) || user.role.toLowerCase().includes(query.toLowerCase()) ); };
Richtig, Sie können nach Namen, E-Mails und Rollen suchen. Probieren Sie es mit searchUsers("dev") aus und es filtert nur Entwickler.
Und wenn Sie das cool fanden, warten Sie, bis wir im nächsten Abschnitt mit Reduce() beginnen.
redu() – Mehr als nur Summen
Die meisten Entwickler verwenden Reduce() meist nur zum Hinzufügen von Zahlen. Aber Tatsache ist, dass es noch viel mehr kann – vertrauen Sie mir.
Warenkorbsumme berechnen
Ein echtes Szenario ist die Berechnung der Gesamtkosten der Produkte in einem Warenkorb unter Berücksichtigung von Rabatten und Steuern. Schauen Sie sich das an:
const cartItems = [ { name: "Nike Air Max", price: 129.99, quantity: 2, discount: 20 }, { name: "Adidas Hoodie", price: 89.99, quantity: 1, discount: 0 }, { name: "Running Socks", price: 12.99, quantity: 3, discount: 10 } ]; const cartTotal = cartItems.reduce((total, item) => { const itemTotal = item.price * item.quantity; const discount = (itemTotal * item.discount) / 100; return total + (itemTotal - discount); }, 0);
Schön, oder? Sie müssen nur eine Funktion für Mengen, Rabatte und Gesamtberechnung implementieren.
Dokumentstatistiktool
Wie wäre es mit der Bearbeitung eines Textdokuments? Wir zählen alle Wörter, Zeichen und Sätze:
const documentStats = paragraphs.reduce((stats, paragraph) => { return { words: stats.words + paragraph.split(' ').length, characters: stats.characters + paragraph.length, sentences: stats.sentences + paragraph.split(/[.!?]+/).length - 1, paragraphs: stats.paragraphs + 1 }; }, { words: 0, characters: 0, sentences: 0, paragraphs: 0 });
Sehen Sie also nicht, wie wunderbar Reduce() mehrere Dinge gleichzeitig handhabt? Das ist viel besser als die Verwendung separater Schleifen.
Profi-Tipp:Wenn Ihr Reduce()-Rückruf zu groß wird, sind kleine Funktionen immer eine Möglichkeit.
find() und some()
Lassen Sie uns zwei Methoden in Angriff nehmen, die Ihre Authentifizierungs- und Moderationssysteme wesentlich einfacher machen.
Erstellen eines Benutzerauthentifizierungssystems
Haben Sie schon einmal ein Anmeldesystem erstellt? So vereinfacht find() die Benutzersuche ganz einfach:
const products = [ { name: "Gaming Mouse", price: 59.99 }, { name: "Mechanical Keyboard", price: 129.99 }, { name: "4K Monitor", price: 349.99 } ];
Keine umständlichen Schleifen oder komplexen if-Anweisungen mehr. find() gibt genau das zurück, was Sie brauchen.
Aufbau eines Content-Moderationstools
Hier glänzt some() – Inhalte anhand verbotener Wörter oder Muster prüfen:
const discountedPrices = products.map(product => ({ ...product, price: (product.price * 0.8).toFixed(2) }));
Schauen Sie sich an, wie some() uns hilft, mehrere Bedingungen gleichzeitig zu überprüfen. Sauber, lesbar und wartbar.
Kurztipp: some() stoppt die Prüfung, sobald eine Übereinstimmung gefunden wird. Perfekt für die Leistung beim Umgang mit großen Datenmengen.
flat() und flatMap()
Der Array Flattener
Haben Sie jemals versucht, verschachtelte Arrays zu reduzieren? flat() ist dein bester Freund. Es glättet diese verschachtelten Arrays auf einer einzigen Ebene:
const users = [ { name: "Sarah Smith", email: "sarah@gmail.com", role: "developer" }, { name: "John Doe", email: "john@company.com", role: "designer" }, { name: "Mike Wilson", email: "mike@gmail.com", role: "developer" } ];
Mit dem Tiefenparameter können Sie sogar angeben, wie tief Sie abflachen möchten. Wenn keine Tiefe vorhanden ist, wird standardmäßig 1 verwendet.
flatMap() – Kommentarsystem mit Mehrfachantwort
Stellen Sie sich flatMap() als die Kombination von flat() und map() in einem verschachtelten Array vor. Es ordnet Ihr Array zu UND reduziert das Ergebnis – alles auf einmal!
Hier ist ein echtes Kommentarsystem, bei dem jeder Kommentar mehrere Antworten haben kann:
const searchUsers = (query) => { return users.filter(user => user.name.toLowerCase().includes(query.toLowerCase()) || user.email.toLowerCase().includes(query.toLowerCase()) || user.role.toLowerCase().includes(query.toLowerCase()) ); };
flatMap() ist perfekt, wenn Sie Elemente transformieren UND verschachtelte Ergebnisse verarbeiten müssen. Es ist, als ob man zwei Methoden zum Preis von einer bekommt!
Hier ist ein weiteres praktisches Beispiel – Hashtags aus Social-Media-Beiträgen extrahieren:
const cartItems = [ { name: "Nike Air Max", price: 129.99, quantity: 2, discount: 20 }, { name: "Adidas Hoodie", price: 89.99, quantity: 1, discount: 0 }, { name: "Running Socks", price: 12.99, quantity: 3, discount: 10 } ]; const cartTotal = cartItems.reduce((total, item) => { const itemTotal = item.price * item.quantity; const discount = (itemTotal * item.discount) / 100; return total + (itemTotal - discount); }, 0);
Sehen Sie, wie flatMap() sowohl die Transformation ALS AUCH das Reduzieren potenziell leerer Ergebnisse handhabt? Ziemlich schick!
every() und Includes()
Aufbau eines Formularvalidierungssystems
Versuchen wir, etwas zu erstellen, das wir täglich verwenden – einen robusten Formularvalidator. So macht every() alles sauber:
const documentStats = paragraphs.reduce((stats, paragraph) => { return { words: stats.words + paragraph.split(' ').length, characters: stats.characters + paragraph.length, sentences: stats.sentences + paragraph.split(/[.!?]+/).length - 1, paragraphs: stats.paragraphs + 1 }; }, { words: 0, characters: 0, sentences: 0, paragraphs: 0 });
every() prüft, ob ALLE Regeln erfüllt sind. Sie sehen, es ist perfekt für die Validierung, bei der alles wahr sein muss.
Erstellen eines Berechtigungsprüfers
So vereinfacht include() die Berechtigungsprüfung sehr einfach:
const users = [ { id: 1, email: "alex@tech.com", password: "hashed_password_1", attempts: 0 }, { id: 2, email: "sam@tech.com", password: "hashed_password_2", attempts: 1 } ]; const authenticateUser = (email, password) => { const user = users.find(u => u.email === email); if (!user) return { status: "error", message: "User not found" }; if (user.attempts >= 3) return { status: "error", message: "Account locked" }; return validatePassword(user, password); };
includes() sorgt dafür, dass sich unser Code wie einfaches Englisch liest. Viel besser als komplexe if-Anweisungen oder Schleifen.
Bestellen Ihrer Daten (sort())
Mussten Sie Daten jemals über die einfache alphabetische Reihenfolge hinaus sortieren? sort() ist viel leistungsfähiger als die meisten Entwickler denken.
Entwicklung eines benutzerdefinierten Tabellensortierers
Hier ist ein realer Tabellensortierer, der verschiedene Datentypen verarbeitet:
const bannedWords = ["spam", "scam", "inappropriate"]; const moderateContent = (content) => { const containsBannedWords = bannedWords.some(word => content.toLowerCase().includes(word) ); const hasSpamPatterns = content.includes("!!!") || content === content.toUpperCase(); return { isSpam: containsBannedWords || hasSpamPatterns, reason: containsBannedWords ? "Banned words detected" : "Spam patterns found" }; };
Keine separaten Funktionen mehr für verschiedene Spalten. Nur ein Sortierer erledigt alles!
Aufbau eines Bestenlistensystems
Schauen Sie sich diesen Bestenlisten-Sortierer an, der Tie-Breaks verwaltet:
const products = [ { name: "Gaming Mouse", price: 59.99 }, { name: "Mechanical Keyboard", price: 129.99 }, { name: "4K Monitor", price: 349.99 } ];
Sehen Sie, wie wir mit mehreren Sortierkriterien umgehen? Zuerst punkten, dann gewinnen, dann entscheidet die niedrigste Spielzeit über das Unentschieden.
Kurztipp: Erstellen Sie vor dem Sortieren immer eine Kopie Ihres Arrays, wenn Sie die ursprüngliche Reihenfolge beibehalten müssen.
Best Practices und Leistung
Bevor Sie loslegen, lassen Sie uns dies mit ein paar kleinen Weisheiten abschließen, die dafür sorgen, dass Ihre Array-Methoden besser funktionieren.
Wann welche Methode anzuwenden ist
Hier ist mein praktischer Leitfaden basierend auf dem, was Sie tun möchten:
const discountedPrices = products.map(product => ({ ...product, price: (product.price * 0.8).toFixed(2) }));
Machen Sie sich also keine Sorgen mehr über forEach- und for-Schleifen. Konzentrieren Sie sich stattdessen auf diese.
Was ist eigentlich wichtig und was nicht?
Zuletzt, bevor du gehst. Suchen Sie immer nach einer Möglichkeit, Dinge einfacher und besser zu machen. Zum Beispiel:
Stattdessen:
const users = [ { name: "Sarah Smith", email: "sarah@gmail.com", role: "developer" }, { name: "John Doe", email: "john@company.com", role: "designer" }, { name: "Mike Wilson", email: "mike@gmail.com", role: "developer" } ];
Machen Sie Folgendes immer:
const searchUsers = (query) => { return users.filter(user => user.name.toLowerCase().includes(query.toLowerCase()) || user.email.toLowerCase().includes(query.toLowerCase()) || user.role.toLowerCase().includes(query.toLowerCase()) ); };
Das ist es! Sie verfügen jetzt über praktische, praxisbezogene Kenntnisse der JavaScript-Array-Methoden. Setzen Sie sie mit Bedacht ein!
Denken Sie daran: Die Lesbarkeit des Codes ist besser als Mikrooptimierungen. Wählen Sie zuerst die Methode aus, die Ihren Code am klarsten macht.
Fragen? Schreiben Sie mir unten in die Kommentare! ?
Folgen Sie mir auf X (ehemals Twitter) für tägliche JavaScript-Weisheit! Ich teile mundgerechte Code-Tipps, behebe reale Probleme und informiere mich über Webentwicklung.
Bleiben Sie neugierig und denken Sie daran: Intelligente Entwickler kopieren und einfügen, aber brillante Entwickler verstehen, was sie kopieren. Erfahren Sie es im nächsten Beitrag! ✨
Das obige ist der detaillierte Inhalt vonJavaScript-Array-Methoden anhand realer Szenarien erklärt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen











Häufig gestellte Fragen und Lösungen für das Ticket-Ticket-Ticket-Ticket in Front-End im Front-End-Entwicklungsdruck ist der Ticketdruck eine häufige Voraussetzung. Viele Entwickler implementieren jedoch ...

JavaScript ist der Eckpfeiler der modernen Webentwicklung. Zu den Hauptfunktionen gehören eine ereignisorientierte Programmierung, die Erzeugung der dynamischen Inhalte und die asynchrone Programmierung. 1) Ereignisgesteuerte Programmierung ermöglicht es Webseiten, sich dynamisch entsprechend den Benutzeroperationen zu ändern. 2) Die dynamische Inhaltsgenerierung ermöglicht die Anpassung der Seiteninhalte gemäß den Bedingungen. 3) Asynchrone Programmierung stellt sicher, dass die Benutzeroberfläche nicht blockiert ist. JavaScript wird häufig in der Webinteraktion, der einseitigen Anwendung und der serverseitigen Entwicklung verwendet, wodurch die Flexibilität der Benutzererfahrung und die plattformübergreifende Entwicklung erheblich verbessert wird.

Es gibt kein absolutes Gehalt für Python- und JavaScript -Entwickler, je nach Fähigkeiten und Branchenbedürfnissen. 1. Python kann mehr in Datenwissenschaft und maschinellem Lernen bezahlt werden. 2. JavaScript hat eine große Nachfrage in der Entwicklung von Front-End- und Full-Stack-Entwicklung, und sein Gehalt ist auch beträchtlich. 3. Einflussfaktoren umfassen Erfahrung, geografische Standort, Unternehmensgröße und spezifische Fähigkeiten.

Diskussion über die Realisierung von Parallaxe -Scrolling- und Elementanimationseffekten in diesem Artikel wird untersuchen, wie die offizielle Website der Shiseeido -Website (https://www.shiseeido.co.jp/sb/wonderland/) ähnlich ist ...

JavaScript zu lernen ist nicht schwierig, aber es ist schwierig. 1) Verstehen Sie grundlegende Konzepte wie Variablen, Datentypen, Funktionen usw. 2) Beherrschen Sie die asynchrone Programmierung und implementieren Sie sie durch Ereignisschleifen. 3) Verwenden Sie DOM -Operationen und versprechen Sie, asynchrone Anfragen zu bearbeiten. 4) Vermeiden Sie häufige Fehler und verwenden Sie Debugging -Techniken. 5) Die Leistung optimieren und Best Practices befolgen.

Zu den neuesten Trends im JavaScript gehören der Aufstieg von Typenkripten, die Popularität moderner Frameworks und Bibliotheken und die Anwendung der WebAssembly. Zukunftsaussichten umfassen leistungsfähigere Typsysteme, die Entwicklung des serverseitigen JavaScript, die Erweiterung der künstlichen Intelligenz und des maschinellen Lernens sowie das Potenzial von IoT und Edge Computing.

Wie fusioniere ich Array -Elemente mit derselben ID in ein Objekt in JavaScript? Bei der Verarbeitung von Daten begegnen wir häufig die Notwendigkeit, dieselbe ID zu haben ...

Erforschen Sie die Implementierung der Funktion des Bedien- und Drop-Einstellungsfunktion der Panel ähnlich wie VSCODE im Front-End. In der Front-End-Entwicklung wird VSCODE ähnlich wie VSCODE implementiert ...
