Javascript 我们可以复制嵌套的JS对象吗';参考值是多少?
假设我有一个嵌套对象,比如:Javascript 我们可以复制嵌套的JS对象吗';参考值是多少?,javascript,typescript,Javascript,Typescript,假设我有一个嵌套对象,比如: let x = { 'key1': { 'key1_1':'value 1.1', 'key1_2': 'value 1.2' 'key1_3': 'value 1.3' } } 我把其中一个密钥复制为 let y = x.key1; 现在我将key1值更改为
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
我希望输出为最新值,即新值1.1
有没有办法做到这一点?如果您使用
x.key1=z.key1,请感谢
然后它将为x.key1
创建新的引用,因此y.key1
将具有与x.key1
不同的引用
为了按照您的期望得到结果,您可以使用类似于Object.assign(x.key1,z.key1)的方法代码>
你可以在下面查看
设x={
“键1”:{
'键1_1':'值1.1',
'键1_2':'值1.2',
“键1_3”:“值1.3”
}
}
设y=x.key1;
设z={
“键1”:{
“key1_1”:“新值1.1”,
“key1_2”:“新值1.2”,
“key1_3”:“新值1.3”
}
}
赋值(x.key1,z.key1);
console.log(y.key1_1)
无法执行此操作。所有变量都是值。对于对象,该值是其引用。但是,如果您执行a={};b=a
则两者都指向同一对象。但是,a={foo:bar}
将更改a
以指向不同的对象,它不会修改b
指向的对象。您是否正在寻找对象。分配(x.key1,z.key1)
?是的,我没有想过使用对象。分配
以那种方式,这就是我一直在寻找的。