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:
|
1. Die erste Methode besteht darin, den lokalen T...
Inhaltsverzeichnis 1. Konsul-Cluster bereitstelle...
Und oft ist es für Wartungsarbeiten erforderlich, ...
Inhaltsverzeichnis 1. Der Elefant, der nicht in d...
Inhaltsverzeichnis Szenarioanalyse Entwicklung Zu...
Als ich mir selbst die Webentwicklung beibrachte,...
Berechnung des Boxmodells <br />Rand + Rahme...
Inhaltsverzeichnis 1. Was sind Optionen? 2. Welch...
Hyperlink Hyperlinks sind die am häufigsten verwen...
Motivation Aus Lerngründen habe ich einen VPS-Die...
Vorwort Der von mir verwendete Computer ist ein M...
Ich bin in letzter Zeit auf viele Zentrierungspro...
CSS3 – Schatten hinzufügen (mithilfe von Boxschat...
Inhaltsverzeichnis Anforderungsbeschreibung: Anfo...
Wenn Sie Docker verwenden, stellen Sie möglicherw...