09月05, 2019

new Array创建新数组数据指向相同

new Array创建新数组数据指向相同

为了省劲直接使用Array创建长度为10的数组,图如下:

const data = new  Array(10).fill({ name:  "", id:  "", num:  0 })

但是在修改state时出现BUG,数组使用map创建十个Input,在修改期中一个的value时,其他Input value全部变化,想了一下应该是new Array创建的数组,其内容指向是相同的,在使用浅拷贝也无法解决问题

const  data  = [...new  Array(10).fill({ name:  "", id:  "", num:  0 })];

于是只能用map返回一个新的数组或者使用深拷贝解决:

const  data  = [...new  Array(10).fill({ name:  "", id:  "", num:  0 })].map(item=>item);

本文链接:http://h88829.top/post/newarray.html

-- EOF --

Comments