[js深度拷贝] js 修改变量值后 原变量值也会更改的问题

let arr = [
  {
        name:"测试"
    }
]

let newarr = arr

newarr[0].name = "柚子"

console.log(newarr[0].name) // 柚子
console.log(arr[0].name) // 柚子

  

解决办法

复制代码
 1 let arr = [
 2   {
 3         name:"测试"
 4     }  
 5 ] 
 6 
 7 let newarr = JSON.parse(JSON.stringify(arr))  // 方法
 8 
 9 newarr[0].name = "柚子"
10 
11 console.log(newarr[0].name) // 柚子
12 console.log(arr[0].name) // 测试
复制代码

 

方法二

复制代码
let arr = [{ name: "测试"}]

let newarr = JSON.parse(JSON.stringify([...arr]))

// 方法 newarr[0].name = "柚子" 
//console.log(newarr[0].name) 
// 柚子 console.log(arr[0].name) // 测试
复制代码

 

转自:https://www.cnblogs.com/iblackly/p/13183144.html

posted @ 2021-12-23 10:25  祭·司  阅读(274)  评论(0编辑  收藏  举报