通常、私が使用する浅いコピーオブジェクトにangular.extend()
その例を次に示します。
var object1 = {
"key": "abc123def456",
"message": {
"subject": "Has a Question",
"from": "example1@example.com",
"to": "example2@example.com"
}
};
var object2 = {
"key": "00700916391"
};
console.log(angular.extend({}, object1, object2));
私たちに与えるでしょう:
{
"key": "00700916391",
"message": {
"subject": "Has a Question",
"from": "example1@example.com",
"to": "example2@example.com"
}
}
しかし、親キーが子オブジェクトによって上書きされないように、オブジェクトをマージしたい場合はどうすればよいでしょうか。
var object1 = {
"key": "abc123def456",
"message": {
"subject": "Has a Question",
"from": "example1@example.com",
"to": "example2@example.com"
}
};
var object2 = {
"key": "00700916391", //Overwrite me
"message": { //Dont overwrite me!
"subject": "Hey what's up?", //Overwrite me
"something": "something new" //Add me
}
};
console.log(merge(object1, object2));
私たちに与えるでしょう:
{
"key": "00700916391",
"message": {
"subject": "Hey what's up?",
"from": "example1@example.com",
"to": "example2@example.com",
"something": "something new"
}
}
私が気付いていないディープ マージを既に実行している Angular 関数はありますか?
そうでない場合、JavaScriptでnレベルの深さで再帰的にこれを行うネイティブな方法はありますか?