假设我有这个嵌套对象说:
let x = {
'key1': {
'key1_1':'value 1.1',
'key1_2': 'value 1.2'
'key1_3': 'value 1.3'
}
}
我正在复制其中一个密钥作为
let y = x.key1;
现在我正在key1
值更改为
let z = {
'key1': {
'key1_1':'new value 1.1',
'key1_2': ' new value 1.2'
'key1_3': ' new value 1.3'
}
}
x.key1 = z.key1
现在如果我这样做
console.log(y.key1_1) //output: value 1.1 desired output: new value 1.1
我希望输出是最新的值,即new value 1.1
有什么办法可以做到这一点吗?谢谢
如果您使用x.key1 = z.key1;
,那么它将为x.key1
创建新的引用,因此y.key1
将具有与x.key1
不同的reference
。
要根据您的期望获得结果,您可以使用Object.assign()
方法,例如Object.assign(x.key1, z.key1);
.
您可以在下面查看。
let x = {
'key1': {
'key1_1': 'value 1.1',
'key1_2': 'value 1.2',
'key1_3': 'value 1.3'
}
}
let y = x.key1;
let z = {
'key1': {
'key1_1': 'new value 1.1',
'key1_2': ' new value 1.2',
'key1_3': ' new value 1.3'
}
}
Object.assign(x.key1, z.key1);
console.log(y.key1_1)