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.
'.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
Es gibt keinen Grund, ein einzelnes Array zurückzugeben, nur der Rückgabewert gibt Ihnen ein Array. – Icepickle
Wenn Sie nur das Array kopieren möchten, verwenden Sie '... .slice()' oder 'Array.from (...)'. – Bergi