2016-11-05 19 views
1

私はこのオブジェクトの配列obj.arrをjavascriptに持っています。 私はそれを新しいオブジェクトに割り当てました。javascriptオブジェクトをコピーとして新しいオブジェクトに割り当てる

var obj_arr_new = obj.arr; 

問題は、私はobj_arr_newを変更すると、obj.arrが同様に変更されてしまうことです。私はそれを望んでいない。 obj_arr_newobj.arrのコピーにするにはどうすればいいですか?obj_arr_newを変更すると、obj.arrは元の状態になりますか?

私はnode.js v6を使用しています。私はnode.jsモジュールを使用しています。誰かがロダシュが仕事をすることができると私に言った。ロダッシュを使用した回答が役に立ちます。

+0

あなたは研究をしましたか?これについて既に多くの質問があり、lodashのドキュメントはオンラインです。 – 4castle

+1

[JavaScriptオブジェクトを正しくクローンするにはどうすればいいですか?](http://stackoverflow.com/questions/728360/how-do-i-correctly-clone-a-javascript-object) – 4castle

+0

法案に合うようなロダッシュのいくつかの方法がありますが、どちらが正確かわかりません。申し訳ありませんが、私はむしろ遅いです。 – user781486

答えて

4

実際には、Lodashには_.cloneDeep(value)があります。

var obj_arr_new = _.cloneDeep(obj.arr); 

クローンの変更ビットが」doesnのように、それは再帰的「配列、配列バッファ、ブール値、日付・オブジェクト、マップ、数字、オブジェクトオブジェクト、正規表現、セット、文字列、記号、および配列を入力し、」クローンますオリジナルに影響を与えるか、またはその逆になります。

Documentation

2

は、私が使用してコピーを作成する傾向がある:JSONableオブジェクト用

var copiedObject = JSON.parse(JSON.stringify(originalObject)); 

これだけ作品を、しかし、あなたは、文字列、配列などその罰金、すなわちない場合を扱っている場合コピーしているオブジェクトの子としての機能があります。

関連する問題