私は他のオブジェクトからのデータを更新したいjavascriptオブジェクトを持っています。私は新しいオブジェクトから新しいものを追加し、新しいオブジェクトを使って古いものを更新し、新しいオブジェクトにない古いオブジェクトには何も残したくない。 (一番下の例)2つのJavaScriptオブジェクトからプロパティをマージする最適な方法は何ですか?
私はさまざまな方法を試してみましたが、彼らは完全にオブジェクトを上書きするのどちらかか、手動でオブジェクト内のオブジェクト内のオブジェクトのためのループを記述することなくカスケードをない、などが
私もについて考えていますそれは、それ自体の内部、別のオブジェクトを持っているかどうかを確認し、それがない場合は、オブジェクトを更新するすべてながら、自分自身を呼び出して、プロパティを反復します再帰関数。 {id:1, name:"asdf", info:{first:3, second:{deeper:5, new_deeper:6}, third:7}, new_info:7};
がでありがとう:
var obj1 = {id:1, name:"asdf", info:{first:3, second:{deeper:3} } };
var obj2 = {id:1, info:{first: 3, second:{deeper:5, new_deeper:6}, third:7}, new_info:7};
私はそれはそうと同等であることOBJ1したいと思います(何かクリーナーを期待して、それを書いていません)前進!
アルゴリズムは不十分ビルドされています。私は – Raynos
同様の質問ここにあなたのデータ構造を平坦化をお勧めします:http://stackoverflow.com/questions/728360/copying-an-object-in-javascript。そこにはたくさんのコードがあります。これは、 "copy object javascript"または "clone object javascript"を少し検索すると実行されます。 – jfriend00