Dies ist meine Erklärung im Klartext. Sie ist möglicherweise trotzdem schwer zu verstehen. Schauen wir uns die folgenden Beispiele an. 1. Array-Akkumulation Array-Akkumulation kommt häufig in Projekten vor, beispielsweise bei der Berechnung des Gesamtpreises von Waren. Mit // Akkumulieren [1, 2, 3, 4, 5, 6, 7, 8].reduce((a, i) => a + i); // Ausgabe: 36 // Akkumulieren, mit einem Standardanfangswert von [1, 2, 3, 4, 5, 6, 7, 8].reduce((a, i) => a + i, 5); // Ausgabe: 41 // Akkumulieren [1, 2, 3, 4, 5, 6, 7, 8].reduce((a, i) => a * i); // Ausgabe: 40320 2. Finden Sie den Maximalwert eines Arrays In jeder Iteration des Arrays verwenden wir [1, 2, 3, 4, 5, 6, 7, 8].reduce((a, i) => Math.max(a, i)); Wenn jedes Element im Array eine Zahl ist, können wir natürlich den Spread-Operator ... in Verbindung mit Math.max(...[1, 2, 3, 4, 5, 6, 7, 8]); 3. Umgang mit unregelmäßigen Arrays Durch die gemeinsame Verwendung von let Daten = [ ["rot","128g","iPhone"], ["Nord-Süd","Zwei Schlafzimmer und ein Wohnzimmer","128㎡","Haus im westlichen Stil"], ["Xiaomi","weiß","intelligente Sportuhr","Herzfrequenz, Blutdruck, Blutsauerstoff","Anruf-Nachrichtenerinnerung"], ["Offizielle Veröffentlichung","Herbst 2020","Basketball","Sneakers","Marken-Direktmailing"] ] let dataConcat = data.map(item=>item.reduce((a,i)=>`${a} ${i}`)) // Ausgabe: ["Rotes 128g Apple-Handy" „Nord-Süd-Haus im westlichen Stil mit zwei Schlafzimmern und einem Wohnzimmer, 128 m²“ „Xiaomi weiße intelligente Sportuhr mit Herzfrequenz, Blutdruck, Blutsauerstoff, Anrufinformationserinnerung“ „Offizieller Verkauf von Basketballschuhen der Marke für Herbst 2020 per Direktwerbung“] 4. Datenduplikate beseitigenÜberprüft, ob das aktuelle Iterationselement vorhanden ist, und fügt es dem Array hinzu, wenn es nicht vorhanden ist. lass array = [1, 2, 3, 'a', 'b', 'c', 1, 2, 3, 'a', 'b', 'c']; array.reduce((keineDupes, curVal) => { wenn (noDupes.indexOf(curVal) === -1) { noDupes.push(curVal) } returniere keine Duplikate }, []) // Ausgabe: [1, 2, 3, 'a', 'b', 'c'] 5. Überprüfen Sie, ob die Klammern gültig sindDies ist eine sehr clevere Verwendung, die ich auf dev.to gesehen habe. Wenn das Ergebnis gleich 0 ist, bedeutet dies, dass die Anzahl der Klammern zulässig ist. [..."(())()(()())"].reduce((a,i)=> i === '(' ? a+1 : a-1 , 0); // Ausgabe: 0 // Mit der Loop-Methode let status=0 für (sei i von [..."(())()(()())"]) { wenn(i === "(") Status = Status + 1 sonst wenn(i === ")") Status = Status - 1 wenn (Status < 0) { brechen; } } 6. Gruppieren nach AttributenGruppieren Sie die Daten nach dem angegebenen Schlüssel. Hier verwende ich das Länderfeld zum Gruppieren. Überprüfen Sie bei jeder Iteration, ob das aktuelle Land vorhanden ist. Wenn nicht, erstellen Sie ein Array und fügen Sie die Daten in das Array ein. Und gibt das Array zurück. let obj = [ {name: '张三', job: 'Datenanalyst', land: '中国'}, {name: 'Ace', job: 'Wissenschaftler', land: 'China'}, {name: 'Leir', job: 'Wissenschaftler', country: 'Vereinigte Staaten'}, {name: 'Bob', job: 'Software Engineer', country: 'Indien'}, ] obj.reduce((Gruppe, curP) => { let newkey = curP['Land'] wenn(!Gruppe[neuerSchlüssel]){ Gruppe[neuer Schlüssel]=[] } Gruppe[neuerSchlüssel].push(aktuellerP) Rücklaufgruppe }, []) // Ausgabe: [ China: [{…}, {…}] Indien: [{…}] Vereinigte Staaten: [{…}] ] 7. Array-AbflachungDas hier gezeigte Array ist nur eine Ebene tief. Wenn das Array mehrere Ebenen hat, können Sie es rekursiv verarbeiten. [[3, 4, 5], [2, 5, 3], [4, 5, 6]].reduce((singleArr, nextArray) => singleArr.concat(nextArray), []) // Ausgabe: [3, 4, 5, 2, 5, 3, 4, 5, 6] Natürlich können Sie stattdessen auch die .flat-Methode von ES6 verwenden [ [3, 4, 5], [2, 5, 3], [4, 5, 6] ].Wohnung(); 8. Eine Zeichenfolge umkehrenDies ist auch eine wunderbare Möglichkeit, [..."hallo Welt"].reduce((a,v) => v+a) oder [..."hallo welt"].reverse().join('') Das könnte Sie auch interessieren:
|
<<: Detailliertes Tutorial zur Installation der MySQL-Datenbank auf Alibaba Cloud Server
>>: So stellen Sie zabbix_agent in Docker bereit
Inhaltsverzeichnis Vorwort 1. Konfigurieren Sie d...
Code kopieren Der Code lautet wie folgt: <Ausw...
Da das, was ich zuvor geschrieben habe, nicht det...
Was ist Fuser Command? Der Befehl fuser ist ein s...
1. Verwenden Sie die Floating-Methode Effektbild:...
Inhaltsverzeichnis 0. Was ist Webpack 1. Einsatz ...
Inhaltsverzeichnis Vorwort 1. Verwenden Sie eine ...
Ich habe heute eine JSP-Seite geschrieben. Ich hab...
Vue-unendliches Scrollen Installieren npm install...
Umweltanforderungen: IP Hostname 192.168.1.1 Knot...
1. Was ist Pip pip ist ein Python-Paketverwaltung...
Manchmal müssen wir Programme auf dem Windows-Sys...
Die Suchleistung von der schnellsten bis zur lang...
In diesem Artikel wird der Verbindungsfehler ECON...
MySQL und verbindungsbezogene Timeouts Vorwort: H...