2017-01-05 5 views
0

Mit REST, ich bin eine Karte (JSON Format), die in ein Array konvertiert werden soll, so dass es in eine Tabelle eingefügt werden kann.Karte in Array konvertieren in Javascript/React

Dies geschieht in der Renderfunktion von React.

Der Eingang wird alle N Minuten vom Back-End aktualisiert.

Wie konvertiere ich die Karte in ein Array?

Ich brauche 0 nly die Werte, nicht die Schlüssel, da die Schlüssel bereits als Spaltenwerte im Voraus in der Tabelle selbst vorhanden sind.

+1

haben Sie versucht, einen Code noch für diese Frage zu schreiben? –

Antwort

4

Hinweis: Beim Iterieren eines Objekts in JS wird die Reihenfolge nicht garantiert. Dies bedeutet, dass die Reihenfolge der Werte beim Konvertieren eines Objekts in ein Array mit der Reihenfolge der Spalten kollidieren kann.

Sie können Object#values (ECMAScript 2017 Draft) verwenden, aber es ist nicht von älteren Browsern unterstützt (siehe browser's compatibility)

const map = { a: 1, b: 2, c: 3 }; 
 

 
const result = Object.values(map); 
 

 
console.log(result);

Wenn Sie bessere Browser-Unterstützung benötigen, können Sie mit verwenden können Object#keysArray#map:

const map = { a: 1, b: 2, c: 3 }; 
 

 
const result = Object.keys(map).map((key) => map[key]); 
 

 
console.log(result);

+0

Danke, Browser-Kompatibilität wird als die neueste angenommen; Ich denke deine erste Methode würde funktionieren. Jetzt muss ich nur sehen, wie ich die Daten aus der REST-API abrufen kann, ich habe sie definiert als "var tableDataMap = this.props.data.dataMap;" und muss sie an eine neue "const" als übergeben Deins oben, nehme ich an? In diesen Zeilen. – cbll

+0

Bevor Sie dies versuchen, lernen Sie, wie Sie mit asynchronen Aufrufen in JS arbeiten. Die Versprechen, Generatoren und Async warten, aber Sie sollten mit Versprechungen beginnen. –

+0

Haben Sie Material für diese? Wenn möglich. Übrigens, 'console.log (Object.values ​​(tableDataMap));' erzeugt die REST-API-Daten auf der Browser-Konsole ... Aber ich habe Schwierigkeiten, sie in der Tabelle richtig zu bekommen. Wie auch immer .. Zu schwer, hier zu schreiben, denke ich. – cbll

1

Ich bin mir nicht sicher, mit der Karte meinen Sie das Map-Objekt oder ein gewöhnliches JS-Objekt. Nur zur Abwechslung möchte ich erwähnen, dass die Map-Objekte meistens (wahrscheinlich immer) wie JSON.stringify([...myMap]) stringifiziert sind. Wenn Sie also ein Map-Objekt in JSON-Daten erhalten, sollten Sie etwas tun;

var myMap = new Map().set(1,"hey").set(2,"you"), 
 
    mapData = JSON.stringify([...myMap]), 
 
    values = JSON.parse(mapData).map(d => d[1]); 
 
console.log("mapData:",mapData); 
 
console.log("values:",values);