为了账号安全,请及时绑定邮箱和手机立即绑定

大佬们都是怎么进行数组对象的复制的

大佬们都是怎么进行数组对象的复制的

jeck猫 2018-08-23 15:25:16
大佬们都是怎么对数组进行深复制的今天在开发中遇到了复制数组对象,用了es6的方法进行数组复制let a = [{a: 1,b: 2}] let b = [...a]b[0].a = 4console.log(a)然而这是个浅复制,最后我这么写let a = [{a: 1,b: 2}] let b = a.map(val => ({...val}))b[0].a = 4console.log(a)这样进行复制,但这样只能解决当前的数组对象,如果数组更复杂的,是不是只能通过递归来实现复制呢?
查看完整描述

2 回答

?
倚天杖

TA贡献1828条经验 获得超3个赞

已知数组值是基本类型直接用[...a],如果数组值是引用类型就直接用cloneDeep了,实现方式好几种就不贴了

查看完整回答
反对 回复 2018-08-26
?
森林海

TA贡献2011条经验 获得超2个赞

“序列化”后“反序列化”,能完美解决你遇到的问题

var a = [{a: 1,b: 2}]var b = JSON.parse(JSON.stringify(a));
b[0].a = 4console.log(a)


查看完整回答
反对 回复 2018-08-26
  • 2 回答
  • 0 关注
  • 663 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信