VorwortHeute werden wir uns einige Grundlagen ansehen und uns die Methoden zur Schleifendurchquerung in JavaScript ansehen: 1. Array-Traversal-Methode 1. fürJedes()Mit der Methode forEach wird jedes Element eines Arrays aufgerufen und an die Rückruffunktion übergeben. Die Rückruffunktion wird für jeden Wert im Array aufgerufen. Die Syntax lautet wie folgt:
Der erste Parameter dieser Methode ist die Callback-Funktion, die erforderlich ist und drei Parameter hat:
sei arr = [1,2,3,4,5] arr.forEach((Element, Index, arr) => { Konsole.log(Index+":"+Element) }) Diese Methode kann auch einen zweiten Parameter haben, um diese Variable innerhalb der Rückruffunktion zu binden (vorausgesetzt, die Rückruffunktion kann keine Pfeilfunktion sein, da Pfeilfunktionen dies nicht haben): sei arr = [1,2,3,4,5] sei arr1 = [9,8,7,6,5] arr.forEach(Funktion(Element, Index, arr){ console.log(dieser[index]) // 9 8 7 6 5 }, arr1) Beachten:
2. Karte ()Die Methode map() gibt ein neues Array zurück, dessen Elemente die Werte sind, die durch den Aufruf der Funktion auf den Elementen des ursprünglichen Arrays verarbeitet wurden. Diese Methode verarbeitet die Elemente im ursprünglichen Array der Reihe nach. Die Syntax lautet wie folgt:
Der erste Parameter dieser Methode ist die Callback-Funktion, die erforderlich ist und drei Parameter hat:
sei arr = [1, 2, 3]; arr.map(Element => { Artikel zurückgeben + 1; }) // Ausgabe: [2, 3, 4] Der zweite Parameter dieser Methode wird verwendet, um die Variable this innerhalb der Parameterfunktion zu binden und ist optional: sei arr = ['a', 'b', 'c']; [1, 2].map(Funktion (e) { gib dies zurück[e]; }, arr) // Ausgabe: ['b', 'c'] Diese Methode kann auch verkettet werden: sei arr = [1, 2, 3]; arr.map(Element => Element + 1).map(Element => Element + 1) // Ausgabe: [3, 4, 5] Beachten:
3. für vonDie for...of-Anweisung erstellt eine Schleife zum Iterieren über ein iterierbares Objekt. Die for...of-Schleife wurde in ES6 eingeführt, um for...in und forEach() zu ersetzen und unterstützt das neue Iterationsprotokoll. Die Syntax lautet wie folgt: für (Variable des Iterables) { Stellungnahme } Diese Methode verwendet zwei Parameter:
Mit dieser Methode kann der Wert eines Schlüssels in einem Objekt abgerufen werden: lass arr = [ {id:1, Wert:'Hallo'}, {id:2, Wert:'Welt'}, {id:3, Wert:'JavaScript'} ] für (Element in arr lassen) { konsole.log(Element); } // Ausgabe: 0 1 2 Beachten:
4. filter()Mit der Methode filter() wird ein Array gefiltert. Es werden Elemente zurückgegeben, die die Bedingungen erfüllen. Sein Parameter ist eine Callback-Funktion. Alle Array-Elemente führen die Funktion nacheinander aus. Es werden Elemente mit dem Rückgabewert true zurückgegeben. Wenn es keine Elemente gibt, die die Bedingungen erfüllen, wird ein leeres Array zurückgegeben. Die Syntax lautet wie folgt:
Der erste Parameter dieser Methode ist die Callback-Funktion, die erforderlich ist und drei Parameter hat:
const arr = [1, 2, 3, 4, 5] arr.filter(Artikel => Artikel > 2) // Ausgabe: [3, 4, 5] Ebenso verfügt es über einen zweiten Parameter, der zum Binden dieser Variable innerhalb der Parameterfunktion verwendet wird. Mit der Methode filter() können Sie undefinierte, Null-, NAN- und andere Werte aus dem Array entfernen: let arr = [1, undefiniert, 2, null, 3, falsch, '', 4, 0] arr.filter(Boolesch) // Ausgabe: [1, 2, 3, 4] Beachten:
5. einige(), alle()Die Methode some() durchläuft jedes Element im Array. Wenn mindestens ein Element die Kriterien erfüllt, wird true zurückgegeben und die übrigen Elemente werden nicht getestet. Andernfalls wird false zurückgegeben. Die Methode every() durchläuft alle Elemente im Array und gibt nur dann true zurück, wenn alle Elemente die Bedingung erfüllen. Wenn ein Element im Array als nicht zufriedenstellend erkannt wird, gibt der gesamte Ausdruck false zurück und die verbleibenden Elemente werden nicht erneut getestet. Die Syntax lautet wie folgt: Die Syntax für beide lautet wie folgt: array.some(Funktion(aktuellerWert,Index,arr),dieserWert) array.every(Funktion(aktuellerWert,Index,arr),dieserWert) Der erste Parameter beider Methoden ist die Callback-Funktion, die erforderlich ist und drei Parameter hat:
sei arr = [1, 2, 3, 4, 5] arr.some(Artikel => Artikel > 4) // Ausgabe: true sei arr = [1, 2, 3, 4, 5] arr.jedes(Artikel => Artikel > 0) // Ausgabe: true Beachten:
6. reduzieren(), reduzierenRechts()Die Methode „reduce()“ empfängt eine Funktion als Akkumulator und jeder Wert im Array (von links nach rechts) wird reduziert und schließlich zu einem einzelnen Wert ausgewertet. „reduce()“ kann als Funktion höherer Ordnung für die Funktionszusammenstellung verwendet werden. Die Syntax lautet wie folgt:
Die Reduce-Methode führt die Callback-Funktion nacheinander für jedes Element im Array aus und schließt dabei Elemente aus, die gelöscht oder dem Array nie zugewiesen wurden. Die Callback-Funktion akzeptiert vier Parameter:
Der zweite Parameter dieser Methode ist initialValue, der den an die Funktion übergebenen Anfangswert darstellt (als erster Parameter des ersten Aufrufs des Rückrufs): sei arr = [1, 2, 3, 4] lass Summe = arr.reduce((vorherige, aktuelle, Index, arr) => { console.log(vorherige, aktuell, index); Rückgabewert für vorherige + aktuelle; }) console.log(arr, Summe); Ausgabe:
Versuchen wir, einen Anfangswert hinzuzufügen: sei arr = [1, 2, 3, 4] lass Summe = arr.reduce((vorherige, aktuelle, Index, arr) => { console.log(vorherige, aktuell, index); Rückgabewert für vorherige + aktuelle; }, 5) console.log(arr, Summe); Ausgabe:
Daraus können wir schließen, dass, wenn kein Anfangswert initialValue angegeben ist, Reduce die Rückrufmethode beginnend bei Index 1 ausführt und den ersten Index überspringt. Wenn ein Anfangswert angegeben ist, beginnt die Ausführung beim Index 0 Die Methode „reduceRight()“ ist nahezu identisch mit der Methode „reduce()“, außer dass sie das Array in umgekehrter Reihenfolge durchläuft, während die Methode „reduce()“ das Array in Vorwärtsreihenfolge durchläuft. sei arr = [1, 2, 3, 4] lass Summe = arr.reduceRight((vorherige, aktuelle, Index, arr) => { console.log(vorherige, aktuell, index); Rückgabewert für vorherige + aktuelle; }, 5) console.log(arr, Summe); Ausgabe:
Beachten:
7. finden (), findenIndex ()Die Methode find() gibt den Wert des ersten Elements des von der Funktion ermittelten Arrays zurück. Wenn ein Element im Array beim Testen der Bedingung „true“ zurückgibt, gibt find() das Element zurück, das die Bedingung erfüllt, und die Ausführungsfunktion wird für nachfolgende Werte nicht aufgerufen. Wenn kein Element die Kriterien erfüllt, wird „undefined“ zurückgegeben. Die Methode findIndex() gibt die Position (den Index) des ersten Elements in einem Array zurück, das die an eine Testfunktion übergebenen Bedingungen erfüllt. Wenn ein Element im Array unter der Funktionsbedingung „true“ zurückgibt, gibt findIndex() die Indexposition des Elements zurück, das die Bedingung erfüllt, und die Ausführungsfunktion wird für nachfolgende Werte nicht aufgerufen. Wenn kein Element die Bedingung erfüllt, wird -1 zurückgegeben. Die Syntax beider Methoden ist wie folgt: array.find(Funktion(aktuellerWert, Index, arr),dieserWert) array.findIndex(Funktion(aktuellerWert, Index, arr), dieserWert) Der erste Parameter beider Methoden ist die Callback-Funktion, die erforderlich ist und drei Parameter hat:
sei arr = [1, 2, 3, 4, 5] arr.find(Artikel => Artikel > 2) // Ausgabe: 3 sei arr = [1, 2, 3, 4, 5] arr.findIndex(Artikel => Artikel > 2) // Ausgabe: 2 Die Methoden find() und findIndex() sind fast identisch, außer dass sie unterschiedliche Ergebnisse zurückgeben:
Beachten:
8. Schlüssel(), Werte(), Einträge()Alle drei Methoden geben ein Array-Iterationsobjekt zurück und der Inhalt des Objekts unterscheidet sich geringfügig:
Die Syntax der drei Methoden ist wie folgt: array.schlüssel() array.werte() array.einträge() Diese drei Methoden haben keine Parameter: let arr = ["Banane", "Orange", "Apfel", "Mango"]; const iterator1 = arr.keys(); const iterator2 = arr.values() const iterator3 = arr.entries() für (let item of iterator1) { konsole.log(Element); } // Ausgabe: 0 1 2 3 für (let item of iterator2) { konsole.log(Element); } // Ausgabe: Banane Orange Apfel Mango für (let item of iterator3) { konsole.log(Element); } // Ausgabe: [0, 'Banane'] [1, 'Orange'] [2, 'Apfel'] [3, 'Mango'] Zusammenfassen:
2. Objektdurchquerungsmethode 1. für infor…in wird hauptsächlich zum Durchlaufen von Objekteigenschaften verwendet. Bei jeder Ausführung des Codes in der Schleife werden die Eigenschaften des Objekts bearbeitet. Die Syntax lautet wie folgt:
Zwei der Parameter sind:
var obj = {a: 1, b: 2, c: 3}; für (var i in obj) { console.log('Schlüsselname:', i); console.log('Schlüsselwert:', obj[i]); } Ausgabe:
Beachten:
2. Objekt.Schlüssel(), Objekt.Werte(), Objekt.Einträge()Diese drei Methoden werden zum Durchlaufen von Objekten verwendet. Sie geben ein Array zurück, das aus den aufzählbaren Eigenschaften des angegebenen Objekts besteht (ausgenommen geerbte und Symboleigenschaften). Die Reihenfolge der Array-Elemente entspricht der Reihenfolge, die beim normalen Durchlaufen des Objekts zurückgegeben wird. Die von diesen drei Elementen zurückgegebenen Werte lauten wie folgt:
lass obj = { ID: 1, Name: 'Hallo', Alter: 18 }; console.log(Object.keys(obj)); // Ausgabe: ['id', 'name', 'age'] console.log(Object.values(obj)); // Ausgabe: [1, 'hallo', 18] console.log(Object.keys(obj)); // Ausgabe: [['id', 1], ['name', 'hallo'], ['alter', 18] Beachten
3. Objekt.getOwnPropertyNames()Die Methode Object.getOwnPropertyNames() ähnelt Object.keys(). Sie akzeptiert ebenfalls ein Objekt als Parameter und gibt ein Array zurück, das alle Eigenschaftsnamen des Objekts selbst enthält. Es können jedoch nicht aufzählbare Eigenschaften zurückgegeben werden. let a = ['Hallo', 'Welt']; Objekt.keys(a) // ["0", "1"] Object.getOwnPropertyNames(a) // ["0", "1", "Länge"] Beide Methoden können verwendet werden, um die Anzahl der Eigenschaften eines Objekts zu zählen: var obj = { 0: "a", 1: "b", 2: "c"}; Objekt.getOwnPropertyNames(obj) // ["0", "1", "2"] Objekt.Schlüssel(Objekt).Länge // 3 Objekt.getOwnPropertyNames(obj).length // 3 4. Objekt.getOwnPropertySymbols()Die Methode Object.getOwnPropertySymbols() gibt ein Array der Symboleigenschaften des Objekts zurück, mit Ausnahme der Zeichenfolgeneigenschaften: lass obj = {a: 1} // Füge dem Objekt eine nicht aufzählbare Symboleigenschaft hinzu Object.defineProperties(obj, { [Symbol('baz')]: { Wert: 'Symbol baz', aufzählbar: falsch } }) // Dem Objekt eine aufzählbare Symboleigenschaft hinzufügen obj[Symbol('foo')] = 'Symbol foo' Object.getOwnPropertySymbols(obj).forEach((Schlüssel) => { console.log(Objekt[Schlüssel]) }) // Ausgabe: Symbol baz Symbol foo 5. Reflect.ownKeys()Reflect.ownKeys() gibt ein Array zurück, das alle Eigenschaften des Objekts selbst enthält. Es ähnelt Object.keys(), das die Eigenschaftsschlüssel zurückgibt, aber keine nicht aufzählbaren Eigenschaften einschließt, während Reflect.ownKeys() alle Eigenschaftsschlüssel zurückgibt: var obj = { ein: 1, b: 2 } Objekt.defineProperty(obj, 'Methode', { Wert: Funktion () { alert("Nicht aufzählbare Eigenschaft") }, aufzählbar: falsch }) Konsole.log(Objekt.Schlüssel(Objekt)) // ["a", "b"] console.log(Reflect.ownKeys(obj)) // ["a", "b", "Methode"] Beachten:
Zusammenfassen:
3. Andere Durchquerungsmethoden 1. fürDie For-Schleife ist wahrscheinlich die am häufigsten verwendete Schleifenmethode. Sie besteht aus drei Ausdrücken: Deklarieren von Schleifenvariablen, Beurteilen von Schleifenbedingungen und Aktualisieren von Schleifenvariablen. Die drei Ausdrücke sind durch Semikolon getrennt. Sie können eine temporäre Variable verwenden, um die Länge des Arrays zwischenzuspeichern und so zu vermeiden, dass die Arraylänge wiederholt abgerufen werden muss. Der Optimierungseffekt ist deutlicher, wenn das Array groß ist. Konstanten arr = [1,2,3,4,5] für(sei i = 0, len = arr.length; i < len; i++ ){ Konsole.log(arr[i]) } Bei der Ausführung werden zuerst die Ausführungsbedingungen beurteilt und dann ausgeführt. Mit der For-Schleife können Arrays, Zeichenfolgen, arrayähnliche Objekte, DOM-Knoten usw. durchlaufen werden. Das ursprüngliche Array kann geändert werden. 2. währendDie Endbedingung in der While-Schleife kann verschiedene Typen haben, wird aber letztendlich in einen Booleschen Wert umgewandelt. Die Konvertierungsregeln lauten wie folgt.
sei num = 1; während (Zahl < 10){ konsole.log(num); Zahl++; } Während gilt das Gleiche wie für. Beide beurteilen zuerst und führen dann aus. Eine Schleife führt Code aus, solange eine angegebene Bedingung erfüllt ist. 3. tun / währendDiese Methode wird zuerst ausgeführt und dann beurteilt. Auch wenn die Anfangsbedingung nicht erfüllt ist, wird die do/while-Schleife mindestens einmal ausgeführt. sei num = 10; Tun { konsole.log(num); Nummer--; } während(Zahl >= 0); console.log(Zahl); //-1 Es wird nicht empfohlen, do/while zum Iterieren über ein Array zu verwenden. 4. für warten aufDie Methode for await...of wird als asynchroner Iterator bezeichnet und hauptsächlich zum Durchlaufen asynchroner Objekte verwendet. Es handelt sich um eine in ES2018 eingeführte Methode. Die Anweisung for await...of erstellt eine Iterationsschleife über asynchrone oder synchrone iterierbare Objekte, einschließlich String-, Array-, arrayähnliche, Map-, Set- und benutzerdefinierte asynchrone oder synchrone iterierbare Objekte. Diese Anweisung kann nur in einer asynchronen Funktion verwendet werden: Funktion Gen (Zeit) { returniere neues Promise((lösen,ablehnen) => { setzeTimeout(Funktion () { Auflösung (Zeit) },Zeit) }) } asynchroner Funktionstest () { sei arr = [Gen(2000),Gen(100),Gen(3000)] für await (let item of arr) { console.log(Datum.jetzt(),Element) } } prüfen() Ausgabe: ZusammenfassenDamit ist dieser Artikel über 24 JavaScript-Loop-Traversal-Methoden abgeschlossen. Weitere Informationen zu JavaScript-Loop-Traversal-Methoden finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, Sie werden 123WORDPRESS.COM auch in Zukunft unterstützen! Das könnte Sie auch interessieren:
|
<<: Verwendung des Linux-Befehls chkconfig
>>: Ausführliche Erläuterung zum Beispiel der MySQL InnoDB-Tablespace-Verschlüsselung
Was ist ein Primärschlüssel? Ein Primärschlüssel ...
Excel ist das am häufigsten verwendete Tool zur D...
In diesem Artikel wird der spezifische Code der L...
Inhaltsverzeichnis # Nachbereitung der Daten # SQ...
Wir wissen, dass wir beim Verwenden von HTML im N...
Inhaltsverzeichnis 1. Übersicht der Seite 2. Infi...
Inhaltsverzeichnis 1. Erstellen Sie grundlegende ...
Vorwort Backup ist die Grundlage der Notfallwiede...
Inhaltsverzeichnis 1. Im Hintergrund laufende Job...
Inhaltsverzeichnis 1. Kommunikation zwischen Elte...
Inhaltsverzeichnis Einführung Öffentlicher Code (...
HTML-zentrierte Front-End-Entwicklung entspricht p...
Bevor wir weiter analysieren, warum der MySQL-Dat...
Im Bereich Design gibt es jedes Jahr unterschiedl...
Dieser Artikel beschreibt anhand eines Beispiels,...