問題は、オブジェクトの深javascript配列/配列をコピーします

問題のI.説明

  Iと同じで所有する二つの情報データを、その背景情報のみフォアグラウンドでオブジェクトの配列を返し、その後、2を設定するためのプロジェクトでの登録ページには、情報(情報およびメッセージB)の2枚をチェックする必要があります受信と区別するために、リストの配列。下記のプロトタイプ。

  

 

 

   され発生するテスト質問:任意の情報やメッセージセカンドオプションをチェックし、他のオプションで対応する情報がチェックされます。例えば、私は名前と携帯電話の情報を確認し、情報II名前と電話がオンにチェックされます。図は次のとおりです。

 

 

 第二に、エラーコード

プロジェクトは前に問題を抱えていた後のメモリアドレスポイントのオブジェクトが発生したため実際には、すぐに我々は動作するようには思えない、問題はしかし、まだポイントを配列や、いくつかの解決策を与えるためであることに気づきました。

エラーとコードを変更しようとします。

// 最初のエラーコードは、アレイに割り当てられた要求データに直接戻され、
この .firstList = data.body.dataList;
 この .secondList = data.body.dataList;
 // 問題を特定し、問題を解決しようとしますいくつかのスキーム
この .firstList = この.firstListの.concat(data.body.dataList);
 この .secondList = この.secondListの.concat(data.body.dataList);
 // 別の方法
この .firstList = 新しい新しいアレイ( data.body.dataList ...);
 この .secondList = 新しい新しいアレイ(... data.body.dataList);
 // さらに
この .firstList = [... data.body.dataList];
 この.secondList = [... data.body.dataList]。

それでも問題が、私は自分自身をそれを書いた2以上のものではありませんインターネット上で見つけ、解決されない、突然私たちはアドレスポイントの問題を解決するために、上記の方法を使用することができる1次元配列のための二次元配列について書かれた記事のコピーを見てしかし、二次元アレイに対して、ちょうど配列の最初の次元をコピーし、配列が第二の次元に関連して格納されているので、最初の次元は、第二次元は、そのコンテンツの実際の格納ので、上記の方法は、解決できません問題。

そして、私の解決策が唯一の配列、およびコピーしなかったオブジェクトの配列をコピーして、考えて、それは深い割り当てオブジェクトを行く必要があります。これは、問題の配列内のオブジェクトのコピーです。

解像度コード:

 この .babyList = data.body.dataList.map(O => ({...} O))。
 この .parentList = data.body.dataList.map(O =>({...} O))。

第三に、ソリューション関連の知識

(1)、ES6アレイ拡張演算子

拡張演算は、3つのドット(...)、コンマで区切られたパラメータの順序に配列されます。

console.log(... [1、2、3 ])
 // 1 2 3

 

継続するには.........

おすすめ

転載: www.cnblogs.com/songForU/p/11469498.html