Dmi*_*sev 4 javascript node.js typescript
我想克隆一个对象然后更改它,但是当我这样做时,原始对象也会更改:
let items = result.Project.ItemGroup[1].Build;
let newItem = { ...items[0] };
newItem.$.Include = `test`;
Run Code Online (Sandbox Code Playgroud)
在对newItem
对象进行赋值后,items[0]
值也会更改。
传播仅制作浅表副本。您没有更改要复制的内容,而是要更改其对象的$
属性,而该对象没有被复制。items[0].$
并且newItem.$
都引用同一个对象:
const items = [
{
$: {
Include: "test"
}
}
];
let newItem = {...items[0]};
console.log(items[0].$ === newItem.$); // true
Run Code Online (Sandbox Code Playgroud)
你需要像这样的东西也克隆$
对象:
let newItem = {...items[0], $: {...items[0].$}};
Run Code Online (Sandbox Code Playgroud)
let newItem = {...items[0], $: {...items[0].$}};
Run Code Online (Sandbox Code Playgroud)
(或一般的深层克隆函数。)
归档时间: |
|
查看次数: |
41 次 |
最近记录: |