首页 > 解决方案 > 改变一个对象键的值同时改变另一个

问题描述

我有一个复杂的变量作为一个对象,包括 2 次相同的对象。如果我更改第一个对象部分的值,这将假定更改第二部分的值。有解释吗?为什么拖车键还连接着?!这是我的代码的一个简单示例:

arr1={'a':[],'b':{'b1':'','b2':''}};
arr2={'p1':{...arr1},'p2':{...arr1}};

arr2['p1']['a']=[1,2,3];
console.log(arr2['p2']['a']);   // works => []

arr2['p1']['b']['b1']='blabla';
console.log(arr2['p2']['b']['b1']);   // doesn't work => 'blabla'

我不想写 'B={'b1':{'a':''},'b2':{'a':''}}' 因为 A 在单独的 .js 中是一个非常大的对象文件

标签: javascript

解决方案


我解决了这个问题:

arr2={'p1':JSON.parse(JSON.stringify(arr1)),'p2':JSON.parse(JSON.stringify(arr1))};

推荐阅读