2017-06-28 7 views
0

Hallo Leute, ich versuche, die Werte eines Objekts in ein anderes Objekt zurückzugeben (nicht sicher, ob das Sinn macht). Also im Grunde, was ich tue ist Mapping über ein Objekt wie folgt aus:Wie man Kartenwerte in ein Objekt zurückgibt [] getrennt durch Kommas

series:this.state.summaryData3[0].summary.population.gender.values.map((value) =>{ 
return [value] 
}) 

Ich möchte die Ausgabe wie folgt sein:

series: [54,46] 

Wie kann ich dieses Problem lösen?

+2

'.map()' gibt ein Array zurück, also anstelle von 'return [value]' wollen Sie nur 'return value' richtig? Wie es ist, haben Sie am Ende ein Array von Arrays. – Pointy

+0

Es gibt keinen Grund, ein einzelnes Array zurückzugeben, nur der Rückgabewert gibt Ihnen ein Array. – Icepickle

+1

Wenn Sie nur das Array kopieren möchten, verwenden Sie '... .slice()' oder 'Array.from (...)'. – Bergi

Antwort

1

Um eine flache Kopie ein Array zu machen, Sie .slice() verwenden können:

series: this.state.summaryData3[0].summary.population.gender.values.slice() 

Wenn Sie jeden Wert in dem Feld ändern wollte, wie Sie eine Kopie machen, Sie .map() verwenden könnte und kehrt die neuer Wert (nicht in einem Array) vom Rückruf. Die .map() Funktion alle zurückgegebenen einzelnen Werte in ein neues Array zusammenstellen wird und dass neue Array zurück:

series: this.state.summaryData3[0].summary.population.gender.values.map(function(item){ 
    // some modification of the original value 
    return item + 1; 
}); 

Hinweis, gibt es keinen Grund .map() zu verwenden, wenn Sie nur den gleichen Wert zurück. Wenn Sie nur den ursprünglichen Wert wünschen, verwenden Sie einfach .slice(), um eine Kopie zu erstellen. Und geben Sie kein Array zurück, es sei denn, Sie möchten ein Array von Arrays als Ergebnis haben.


Und wenn alles, was Sie brauchen, ist ein Verweis auf das bestehende Array selbst, Sie brauchen nicht einmal eine Kopie zu machen:

series: this.state.summaryData3[0].summary.population.gender.values 

Also, Sie haben drei verschiedene Möglichkeiten hier abhängig von Ihren spezifischen Anforderungen.

Verwandte Themen