Heim Web-Frontend js-Tutorial JavaScript-Array-Methoden anhand realer Szenarien erklärt

JavaScript-Array-Methoden anhand realer Szenarien erklärt

Dec 15, 2024 pm 01:44 PM

JavaScript Array Methods Explained Through Real World Scenarios

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 }
];

Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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

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" }
];
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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())
    );
};
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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

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

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 }
];

Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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

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" }
];
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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())
    );
};
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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

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

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

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

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 }
];

Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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

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" }
];
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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())
    );
};
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

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!

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

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

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Java-Tutorial
1653
14
PHP-Tutorial
1251
29
C#-Tutorial
1224
24
Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Was soll ich tun, wenn ich auf den Codendruck auf Kleidungsstücke für Front-End-Thermalpapier-Quittungen stoße? Apr 04, 2025 pm 02:42 PM

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 ...

Entmystifizieren JavaScript: Was es tut und warum es wichtig ist Entmystifizieren JavaScript: Was es tut und warum es wichtig ist Apr 09, 2025 am 12:07 AM

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.

Wer bekommt mehr Python oder JavaScript bezahlt? Wer bekommt mehr Python oder JavaScript bezahlt? Apr 04, 2025 am 12:09 AM

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.

Wie kann man Parallax -Scrolling- und Element -Animationseffekte wie die offizielle Website von Shiseido erzielen?
oder:
Wie können wir den Animationseffekt erzielen, der von der Seite mit der Seite mit der offiziellen Website von Shiseido begleitet wird? Wie kann man Parallax -Scrolling- und Element -Animationseffekte wie die offizielle Website von Shiseido erzielen? oder: Wie können wir den Animationseffekt erzielen, der von der Seite mit der Seite mit der offiziellen Website von Shiseido begleitet wird? Apr 04, 2025 pm 05:36 PM

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 ...

Ist JavaScript schwer zu lernen? Ist JavaScript schwer zu lernen? Apr 03, 2025 am 12:20 AM

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.

Die Entwicklung von JavaScript: Aktuelle Trends und Zukunftsaussichten Die Entwicklung von JavaScript: Aktuelle Trends und Zukunftsaussichten Apr 10, 2025 am 09:33 AM

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 Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Wie fusioniere ich Arrayelemente mit derselben ID mit JavaScript in ein Objekt? Apr 04, 2025 pm 05:09 PM

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 ...

So implementieren Sie die Funktion des Ziell- und Drop-Einstellungsfunktion, ähnlich wie bei VSCODE in der Front-End-Entwicklung? So implementieren Sie die Funktion des Ziell- und Drop-Einstellungsfunktion, ähnlich wie bei VSCODE in der Front-End-Entwicklung? Apr 04, 2025 pm 02:06 PM

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 ...

See all articles