0
在JavaScript中,我有一個對象。正在跟蹤該對象的更改(我正在使用AngularJS)。修改現有對象以匹配該對象的更新版本
在我AngularJS服務,我得到這個對象的更新版本。我不知道發生了什麼變化吧,我不知道該對象的模型,我只知道:
1)這兩個對象具有相同的模型(雖然這個模型內的數組可以增加或大小減小)
2)如果我將舊對象的引用更改爲新引用,AngularJS將(可以理解)無法更新前端以反映新對象,因爲所有的手錶舊對象剛剛打破。
所以,我想:「好吧,我只是將所有的值從更新的對象複製到新的一個!」這工作得非常好。然而,我很難讓我的配方恰到好處,所以我想我會尋求一些幫助。請注意,這些是未知的,儘管相同的模型的複雜對象:
var makeEqual = function(originalObject, updatedObject){
for (var key in originalObject) {
if (typeof originalObject[key] == "object"
&& originalObject.hasOwnProperty(key)) {
makeEqual(originalObject[key], updatedObject[key]);
}
else{
originalObject[key] = updatedObject[key];
}
};
}
但是,到目前爲止,我有以下問題。如果updateObject
是一個數組,則不會添加新的元素。刪除的元素將不會被刪除,(我認爲,不確定)。請注意,該數組可能是一個包含子對象的數組。老實說,我覺得這有可能是除了我自己發現的問題之外的其他問題,所以我問:我如何創建這個「深入複製到現有對象」功能完美的工作?
先生,您是一位紳士和學者。我不敢相信我不知道那是存在的。 – JHixson