js数组、对象、数组中套对象等的“复制”(不改变原来的值)的方法,

数组

1:数组用concat

let a=[1,2,3]
let b=a.concat()
a[0]=1000
console.log(a)
console.log(b)
值为:
 [1000, 2, 3]
 [1, 2, 3]

 2:数组用Object.assign()

let a=[1,2,3]
let b=Object.assign([],a)
a[0]=1000console.log(a)
console.log(b)
值为:
[1000, 2, 3]
[1, 2, 3]

对象

1:对象用Object.assign()

let a={age:12,name:'寅春树'}
let b=Object.assign({},a)
a.age=50console.log(a)
console.log(b)
值为:
{age: 50, name: "寅春树"}
{age: 12, name: "寅春树"}

2:杀手锏:数组中有对象,JSON.parse(JSON.stringify(xxx))

let a=[1,2,3,{age:12,name:"寅春树"}]
let b=JSON.parse(JSON.stringify(a))
a[0]=100
a[3].age=50
console.log(a)
console.log(b)

值为:

894110-20200427124501510-2106952616.png





关键词:js深浅复制,js复制
上一篇 下一篇


读后有收获可以支付宝请作者喝枸杞,有疑问也可以加作者讨论:





友情链接
@寅春树 豫ICP备20020705号 Powered by Thinkcmfx