2017-03-27 9 views
0

現在、私は角度2を使用しています。私のタイスクリプトファイルには、このようなオブジェクトがあります。オブジェクト内のオブジェクトをコピーして、angle2の値を変更するにはどうすればよいですか?

chartData:任意の

chartDataは、結果の配列を持っており、それぞれの結果は、チャネル配列

ある

のでchartData.result [0] .channelsは、[4]、これは私達が私が欲しい

initally得るものです結果[0]を結果[1]にプッシュし、チャネル[0]を変更する.id = "新規"と同様に試みています。

this.chartData.result.push(this.chartData.result [0]);

this.chartData.result [1] .channels [0] .ID = "新しい"

私はこれをやっている、それはチャンネルのIDを変更する[0]の両方の結果の[0]となります[ 1]、なぜ私は結果[1]オブジェクトだけを変更しようとしているときに起こっているのですか?

+0

の可能性のある重複[ディープコピー角度2 +活字体の配列(http://stackoverflow.com/questions/35504310/deep-copy-an-array-in-angular-2-typescript) – cdbajorin

+0

私は重複をリンクしましたが、これは本当に角形/字形とは関係ありません。それはjavascriptの仕組みです。将来の参照(ha)のために、あなたは "javascript pass by reference"の情報を探しています – cdbajorin

答えて

0

あなたは配列要素への参照で同じオブジェクトをプッシュしてバインドしているので、以下を実行すると役立ちます。

this.chartData.result.push(Object.assign({}, this.chartData.result[0])); 
+0

それはまだ同じ問題です! – code1

+0

あなたはそれをplunkerに複製できますか? – Amir

関連する問題