VorwortAufgrund 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 simulierenDie folgende Abbildung zeigt die beiden zusammenzuführenden Arrays. Zusammengeführte DatenDie 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). FusionsideenBei 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 SchrittDeklarieren 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 2Durchlaufen 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 3Durchlaufen 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 4Konvertieren 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 CodeDa 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> ZusammenfassenDies 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:
|
Bei der sogenannten kaskadierenden Replikation sy...
Inhaltsverzeichnis 1. Tabellenmethode umbenennen ...
Vorwort Als ich kürzlich ein Projekt erstellte, d...
1. CSV-Datei importieren Verwenden Sie den folgen...
Einführung Heute werde ich die Verwendung der Sum...
Inhaltsverzeichnis 1. Ändern Sie durch Binden des...
SSH-Secure-Shell, ermöglicht sichere Remote-Anmel...
Umfeld: 1. CentOS6.5 X64 2.mysql-5.6.34-linux-gli...
Inhaltsverzeichnis 1. Testexperiment 2. Leistungs...
Inhaltsverzeichnis Was ist LocalStorage Was ist S...
Inhaltsverzeichnis 1. Konsul-Cluster bereitstelle...
Erfordern Das Div unter dem Körper ist vertikal z...
Nehmen wir als Beispiel das Übersetzungsprogramm....
Inhaltsverzeichnis 1. Router-Ansicht 2. Router-Ve...
1 Gespeicherte Prozedur 1.1 Was ist eine gespeich...