js 多层对象数组,修改内层的数据 不改变原数组
时间: 2024-05-15 19:16:48 浏览: 69
ECMAScript6变量的解构赋值实例详解
可以使用深拷贝的方式,先将原数组复制一份,然后对复制的数组进行修改,这样就不会改变原数组。
以下是一个示例代码:
```javascript
const originalArray = [
{
id: 1,
name: 'John',
hobbies: [
{ name: 'reading', level: 3 },
{ name: 'swimming', level: 2 }
]
},
{
id: 2,
name: 'Sarah',
hobbies: [
{ name: 'hiking', level: 4 },
{ name: 'dancing', level: 1 }
]
}
];
// 使用深拷贝复制原数组
const copiedArray = JSON.parse(JSON.stringify(originalArray));
// 修改复制的数组
copiedArray[0].hobbies[0].level = 5;
console.log(originalArray[0].hobbies[0].level); // 输出 3,原数组不变
console.log(copiedArray[0].hobbies[0].level); // 输出 5,复制的数组被修改
```
在上面的示例中,使用 `JSON.parse(JSON.stringify(originalArray))` 进行深拷贝,这样就可以得到一个原数组的复制。然后对复制出来的数组进行修改,原数组不会受到影响。
阅读全文