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

Beispiel für die Implementierung einer kaskadierenden MySQL-Replikation

Bei der sogenannten kaskadierenden Replikation sy...

So benennen Sie die Tabelle in MySQL um und worauf Sie achten müssen

Inhaltsverzeichnis 1. Tabellenmethode umbenennen ...

Einfache Kapselung von Axios und Beispielcode zur Verwendung

Vorwort Als ich kürzlich ein Projekt erstellte, d...

Tipps zum Importieren von CSV-, Excel- oder SQL-Dateien in MySQL

1. CSV-Datei importieren Verwenden Sie den folgen...

Beispiel-Tutorial zur Verwendung der Summenfunktion in MySQL

Einführung Heute werde ich die Verwendung der Sum...

Ubuntu startet den Remote-Anmeldevorgang des SSH-Dienstes

SSH-Secure-Shell, ermöglicht sichere Remote-Anmel...

Detaillierte Schritte zur Installation der MySQL 5.6 X64-Version unter Linux

Umfeld: 1. CentOS6.5 X64 2.mysql-5.6.34-linux-gli...

Warum wird die MySQL-Paging-Funktion bei Verwendung von Limits immer langsamer?

Inhaltsverzeichnis 1. Testexperiment 2. Leistungs...

Der Unterschied und die Verwendung von LocalStorage und SessionStorage in Vue

Inhaltsverzeichnis Was ist LocalStorage Was ist S...

CSS realisiert Div vollständig zentriert, ohne Höhe festzulegen

Erfordern Das Div unter dem Körper ist vertikal z...

So lassen sich Python-Skripte direkt unter Ubuntu ausführen

Nehmen wir als Beispiel das Übersetzungsprogramm....

Ein super detailliertes Vue-Router Schritt-für-Schritt-Tutorial

Inhaltsverzeichnis 1. Router-Ansicht 2. Router-Ve...

Detaillierte Erläuterung der gespeicherten Prozeduren und Funktionen von MySQL

1 Gespeicherte Prozedur 1.1 Was ist eine gespeich...