gpt4 book ai didi

javascript - 将 Javascript 对象复制到另一个对象中,而不是创建新的属性

转载 作者:行者123 更新时间:2023-11-30 10:33:47 25 4
gpt4 key购买 nike

假设有两个对象

source = {
name: "A",
address: {
city: "B",
zipcode: "C"
},
car: {
make: "D",
model: "E"
}
};

target = {
name: "",
address: {
city: ""
}
};

现在我想将所有数据从源复制到目标。但是,只有当相应的属性已经存在于目标中时,才能进行复制。它有点像 jQuery 的扩展,没有添加新的属性。使用以上数据,结果将是...

target = {
name: "A",
address: {
city: "B"
}
};

如何轻松实现这一点?

最佳答案

应该这样做:

function extend(target, source) {
for (var prop in source)
if (prop in target) // <== test this
if (typeof target[prop] === "object")
extend(target[prop], source[prop]);
else
target[prop] = source[prop];
}

免责声明:这个简单的方法不适用于数组、可枚举原型(prototype)属性、null 值……

你不妨把最外层的循环改成

    for (var prop in target)
if (prop in source)

取决于两个对象中哪一个具有较少的枚举属性。

关于javascript - 将 Javascript 对象复制到另一个对象中,而不是创建新的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15209862/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com