JS verwendet Map, um doppelte Arrays zu integrieren

JS verwendet Map, um doppelte Arrays zu integrieren

Vorwort

Aufgrund der Geschäftsanforderungen des Unternehmens haben wir kürzlich ECharts-Diagramme geschrieben, um die Änderungen in den Daten anzuzeigen, die sich auf das schrittweise Geschäft des Unternehmens beziehen. Der Server muss die Daten abfragen und zur Datenanzeige an das Front-End zurückgeben. Da die zurückgegebenen Daten jedoch für die Anzeige in den Front-End-ECharts nicht bequem sind, ist eine Datenintegration erforderlich. Aufgrund meiner mangelnden Erfahrung kann ich jedoch nur den Chef des Unternehmens um Hilfe bitten. Mit der Hilfe des Chefs habe ich die Datenintegration abgeschlossen und eine beispiellose Zusammenführungsmethode gelernt, die ich heute mit Ihnen teilen kann.

Daten simulieren

Die folgende Abbildung zeigt die beiden zusammenzuführenden Arrays.

Zusammengeführte Daten

Die zusammengeführten Daten erfordern, dass die Objekte im Double-Array mit der Zeit als einzigem Schlüssel zusammengeführt werden. Wenn der Wert im Objekt vorhanden ist, wird er angezeigt. Wenn nicht, wird der Schlüssel, den das Objekt nicht hat, initialisiert und der Anfangswert ist 0 (wenn der Ausdruck nicht klar ist, werden die endgültigen zusammengeführten Daten unten angezeigt).

Fusionsideen

Bei dieser Fusion wird die js-Mapp-Technologie verwendet. Da die Zeit der einzige Schlüssel ist, müssen wir Array 1 durchlaufen, um eine Map mit der Zeit als Schlüssel zu initialisieren, dann Array 2 durchlaufen, um die Daten zu ergänzen, und dann die verarbeitete Map in ein Array konvertieren.

Codeanzeige & -analyse

erster Schritt

Deklarieren Sie zuerst die Simulationsdaten und erstellen Sie ein leeres Objekt, das die Karte trägt

      // Simulierte Daten arr1
      let testArrOne = [
        { Datum: "2021-8-11", testNumOne: 1 },
        { Datum: "2021-8-12", testNumOne: 2 },
        { Datum: "2021-8-13", testNumOne: 3 },
      ];
      // Simulierte Daten arr2
      lass testArrTwo = [
        { Datum: "2021-8-12", testNumTwo: 2 },
        { Datum: "2021-8-14", testNumTwo: 4 },
        { Datum: "2021-8-15", testNumTwo: 5 },
      ];
      //Merge-Methode let testMap = {}; //Deklariere zuerst ein leeres Objekt als Map

Schritt 2

Durchlaufen Sie das Array, um die Karte zu initialisieren

   //Durchlaufe das erste Array testArrOne.forEach((item) => {
        testMap[Artikel.Datum] = {
          date: item.date, //Initialisierungszeitpunkt testNumOne: item.testNumOne || 0, //Initialisierung Testdaten eins testNumTwo: 0, //Initialisierung Testdaten zwei };
      });
  

Dann erhalten wir eine Karte mit der Zeit als einzigem Schlüssel. Wir drucken die folgenden Daten

Schritt 3

Durchlaufen Sie Array 2, um zugehörige Zuweisungs- und Initialisierungsvorgänge durchzuführen

    //Durchlaufe das zweite Array testArrTwo.forEach((item) => {
       //Wenn das Array ein Map-Objekt mit der Zeit enthält, kopieren Sie es. Wenn eine neue Zeit gefunden wird, initialisieren Sie es und weisen Sie ein leeres Objekt zu testMap[item.date] = testMap[item.date] || {}; 
       //ZuweisungszeittestMap[item.date].date = item.date;
        //Testdaten eins zuweisen. Wenn nicht, initialisieren Sie testMap[item.date].testNumOne = testMap[item.date].testNumOne || 0;
        //Hilfstestdaten twotestMap[item.date].testNumTwo = item.testNumTwo;
      });

Drucken Sie die Karte aus, um das integrierte Objekt wie folgt zu erhalten

Schritt 4

Konvertieren Sie die Karte in ARR und Sie sind fertig.

 dies.listMapUtils.map2List(testMap);

Nachfolgend der gekapselte Code zur Konvertierung zwischen map und arr

      listMapUtils: {
      //arr zur Map-Methode list2Map: function(list, key) {
          lass map = {};
          wenn (Liste && Array.isArray(Liste) && Liste.Länge > 0) {
            Liste.fürJeden((Element) => {
              Element[Schlüssel]? (Map[Element[Schlüssel]] = Element): "";
            });
          }
          Rückfahrkarte;
        },
        //zur arr-Methode map2List zuordnen: function(map) {
          lass Liste = [];
          wenn (Map && Typ der Map === "Objekt") {
            für (let-Schlüssel in Karte) {
              list.push(map[Schlüssel]);
            }
          }
          Liste zurückgeben;
        },
      },


Vollständiger Code

Da es praktisch ist, die Konvertierungsmethode zwischen Map und Arr anzuzeigen, habe ich sie in den Daten angegeben. Studenten sollten es nicht so schreiben. Als Front-End müssen Sie immer noch eine modulare Idee haben.

<Vorlage>
  <div></div>
</Vorlage>

<Skript>
Standard exportieren {
  Name: "App",
  Daten() {
    zurückkehren {
      listMapUtils: {
        list2Map: Funktion(Liste, Schlüssel) {
          lass map = {};
          wenn (Liste && Array.isArray(Liste) && Liste.Länge > 0) {
            Liste.fürJeden((Element) => {
              Element[Schlüssel]? (Map[Element[Schlüssel]] = Element): "";
            });
          }
          Rückfahrkarte;
        },
        map2List: Funktion(map) {
          lass Liste = [];
          wenn (Map && Typ der Map === "Objekt") {
            für (let-Schlüssel in Karte) {
              list.push(map[Schlüssel]);
            }
          }
          Liste zurückgeben;
        },
      },
    };
  },
  erstellt() {
    dies.mergeArr();
  },
  Methoden: {
    mergeArr() {
      // Simulierte Daten arr1
      let testArrOne = [
        { Datum: "2021-8-11", testNumOne: 1 },
        { Datum: "2021-8-12", testNumOne: 2 },
        { Datum: "2021-8-13", testNumOne: 3 },
      ];
      // Simulierte Daten arr2
      lass testArrTwo = [
        { Datum: "2021-8-12", testNumTwo: 2 },
        { Datum: "2021-8-14", testNumTwo: 4 },
        { Datum: "2021-8-15", testNumTwo: 5 },
      ];

      //Merge-Methode let testMap = {}; //Deklariere zuerst ein leeres Objekt als Map

      //Durchlaufe das erste Array testArrOne.forEach((item) => {
        testMap[Artikel.Datum] = {
          Datum: Artikel.Datum,
          testNumOne: Element.testNumOne || 0,
          testNumTwo: 0,
        };
      });

      testArrTwo.forEach((item) => {
        testMap[item.date] = testMap[item.date] || {}; //Objekt initialisieren testMap[item.date].date = item.date;
        testMap[item.date].testNumOne = testMap[item.date].testNumOne || 0;
        testMap[Element.Datum].testAnz.Zwei = Element.testAnz.Zwei;
      });
      
      //Karte zu arr
      dies.listMapUtils.map2List(testMap);
      //Das Endergebnis abrufen console.log(this.listMapUtils.map2List(testMap));
    },
  },
};
</Skript>

<Stil></Stil>

Zusammenfassen

Dies ist das Ende dieses Artikels über die Verwendung von JS-Maps zur Integration von Doppelarrays. Weitere relevante Inhalte zur JS-Integration von Doppelarrays finden Sie in den vorherigen Artikeln von 123WORDPRESS.COM oder in den folgenden verwandten Artikeln. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird!

Das könnte Sie auch interessieren:
  • JavaScript-Tipps zur Verbesserung Ihrer Programmierkenntnisse
  • Einige Tipps zu JavaScript
  • 9 tägliche Tipps zur JavaScript-Entwicklung
  • Tipps zur JavaScript-Codierung teilen
  • Tipps für numerische Berechnungen in der JavaScript-Frontend-Entwicklung
  • Lernen Sie 9 JavaScript-Tipps in 5 Minuten
  • JS 4 super praktische Tipps zur Verbesserung der Entwicklungseffizienz

<<:  Installation verschiedener Versionen von MySQL 8.0.18 und während der Installation aufgetretene Probleme (Zusammenfassung)

>>:  Installieren Sie Jenkins mit Docker und lösen Sie das Problem des anfänglichen Plugin-Installationsfehlers

Artikel empfehlen

Mysql implementiert drei Funktionen zum Feldspleißen

Beim Exportieren von Daten in Operationen ist das...

9 Tipps für das Webseiten-Layout

<br />Verwandte Artikel: 9 praktische Vorsch...

JavaScript-Ereigniserfassungs-Blubbern und Erfassungsdetails

Inhaltsverzeichnis 1. Ereignisablauf 1. Konzept 2...

Ein magischer MySQL-Deadlock-Troubleshooting-Datensatz

Hintergrund Apropos MySQL-Deadlock: Ich habe bere...

Tipps zum Escapen von HTML-Texten

Heute habe ich auf CSDN einen kleinen Trick zum Es...

Einrichten der React-Native-Umgebung und grundlegende Einführung

Umgebungsvorbereitung 1. Umweltkonstruktion React...

Zusammenfassung verschiedener Methoden zur MySQL-Datenwiederherstellung

Inhaltsverzeichnis 1. Einleitung 2. Direkte Wiede...

Tutorial zum Verbinden und Verwenden von MySQL 8.0 im Maven-Projekt von IDEA

Schauen wir uns zunächst meine grundlegende Entwi...

Beispiele für die Verwendung der oder-Anweisung in MySQL

1. Die Verwendung der oder Syntax in MySQL und di...

Unterschied zwischen varchar- und char-Typen in MySQL

Inhaltsverzeichnis vorgenannt VARCHAR-Typ VARCHAR...

Detaillierter Prozess zum Erstellen von MongoDB und MySQL mit Docker-Compose

Schauen wir uns die detaillierte Methode zum Erst...

XHTML-Tutorial für die ersten Schritte: XHTML-Webseiten-Bildanwendung

<br />Das sinnvolle Hinzufügen von Bildern k...