Javascript 更改第一个对象中的值会导致第二个对象更改

Javascript 更改第一个对象中的值会导致第二个对象更改,javascript,arrays,typescript,javascript-objects,Javascript,Arrays,Typescript,Javascript Objects,我有一个对象数组: const test = new Array(2).fill({ a: 1, b: 2 }); test[0].a = 3; 我只想在第一个对象中重新分配“a”,但是当我使用上面的代码时,两个“a”都会被重新分配。以及输出: [ { a: 3, b: 2 }, { a: 3, b: 2 } ] 如数组填充法的eg中所述 如果第一个参数是一个对象,那么数组中的每个插槽都将引用该对象 一种可能的解决办法: const test=Array.from({length:2}).

我有一个对象数组:

const test = new Array(2).fill({ a: 1, b: 2 });

test[0].a = 3;
我只想在第一个对象中重新分配“a”,但是当我使用上面的代码时,两个“a”都会被重新分配。以及输出:

[ { a: 3, b: 2 }, { a: 3, b: 2 } ]
如数组填充法的eg中所述

如果第一个参数是一个对象,那么数组中的每个插槽都将引用该对象

一种可能的解决办法:

const test=Array.from({length:2}).map(()=>({a:1,b:2}));
测试[0],a=3;
控制台日志(测试);

如果它是相同的引用,那么它也将被更改。这是对象的一般规则,不包括基本值。