提问人:Robert M. 提问时间:10/25/2023 更新时间:10/25/2023 访问量:78
如何通过引用将对象属性复制到另一个对象
How to copy object properties to another object by reference
问:
我希望能够通过引用将多个对象的属性捆绑到另一个对象中,这样当我更改捆绑对象中的属性时,它会改变原始对象。我正在使用扩展运算符将对象属性分配给新对象。
objectA = {"key1" : 1, "key2" : 2, "key3" : 3}
objectB = {"key4" : 4, "key5" : 5, "key6" : 6}
bigObject = {...objectA, ...objectB}
bigObject["key1"] = 50;
Logger.log(bigObject["key1"]) //outputs 50
Logger.log(objectA["key1"]) //outputs 1
我知道 Javascript 按值复制,除非您复制对象,但我不想要对象的对象,我想要来自其他对象的属性对象。有什么办法可以做到这一点吗?提前致谢。
答:
1赞
Sahab
10/25/2023
#1
hope below code can help
const rebuildMergedObject = () => {
for (const prop in bigObject) {
if (bigObject.hasOwnProperty(prop) && prop !== "sourceObjects") {
for (const sourceObject of bigObject.sourceObjects) {
if(sourceObject.hasOwnProperty(prop) ) {
sourceObject[prop] = bigObject[prop];
}
}
}
}
};
var objectA = {"key1" : 1, "key2" : 2, "key3" : 3}
var objectB = {"key4" : 4, "key5" : 5, "key6" : 6}
var bigObject = { ...objectA, ...objectB };
bigObject.sourceObjects = [objectA, objectB];
bigObject["key1"] = 50;
rebuildMergedObject();
console.log(bigObject);
console.log(objectA);
评论
0赞
Robert M.
10/26/2023
谢谢。实际上,我一直在寻找一种本地方法来避免做这样的事情。不过,我总是很感激你的时间和精力。
评论
objectA
objectB
bigObject