深拷贝与浅拷贝
Object.assign()会身拷贝一个复杂类型
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><script>var arr1 = [{id:1,name:1},{id:2,name:2}]arr2 = [{id:1,age:'原来的值1'},{id:1,age:'111'},{id:2,age:'22'},]arr1.forEach(element => {element.shuzu = []arr2.forEach(ele => {if (element.id == ele.id) {// 这个是浅拷贝 以后改变arr1的值回改变arr2的值// element.shuzu.push(ele)// 以下两种是深拷贝 不会改变arr2的值// element.shuzu.push(Object.assign([],ele))element.shuzu.push(JSON.parse(JSON.stringify(ele)))}});});console.log('更改arr1的值', arr1[0].shuzu[0],'原来arr2的值', arr2[0]);arr1[0].shuzu[0].age = '新值12345'console.log('更改arr1的值', arr1[0].shuzu[0],'原来arr2的值', arr2[0]);</script>
</body>
</html>