javascript数组/对象数组的深浅拷贝问题

  在项目里的一个报名页面需要勾选两条信息(信息一和信息二),由于信息一和信息二所拥有的数据是一致的,所以后台只返回了一个对象数组,然后在前台设置了两个List数组来接收并加以区分。原型如下图;

  

javascript数组/对象数组的深浅拷贝问题

 

 

   测试出现的问题是:任意勾选信息一或信息二中的选项,对应另一个信息中的选项也会被勾选。比如我勾选了信息一的姓名和手机,那么信息二中的姓名和手机也会被勾选上。如下图:

javascript数组/对象数组的深浅拷贝问题

 

 

 二、错误代码

其实有过前一次项目里由于对象内存地址指向而导致的问题后,这次很快就意识到依旧是因为数组指向的问题,并给予了一些解决措施,然而好像并没有起作用。

错误及尝试修改的代码:

//第一次的错误代码,直接将请求回来的数据分别赋值给数组; this.firstList = data.body.dataList; this.secondList = data.body.dataList; //发现问题后,尝试解决问题的几种方案 this.firstList =this.firstList .concat(data.body.dataList); this.secondList =this.secondList .concat(data.body.dataList); //另一种方法 this.firstList = new Array(...data.body.dataList); this.secondList = new Array(...data.body.dataList); //又一种 this.firstList =[...data.body.dataList]; this.secondList = [...data.body.dataList];

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zywpgx.html