本来avgX里只有25个数据,为了不污染avgX,我们使用了中间变量arr,然后在arr里添加了5个数据,打印原数组的时候会惊奇地发现avgX也变成了30个数据!这是因为数组之类引用数据类型,如果直接相等,相等于存储地址相等了,只要修改了一方,另一方会同步修改,正确的做法是在原数组里slice(0),全部截取原数组的数据,这时候我们不管如何修改arr,avgX都不会发生改变了。
JavaScript:使用slice(0)复制数组
最新推荐文章于 2024-05-27 17:57:44 发布
本来avgX里只有25个数据,为了不污染avgX,我们使用了中间变量arr,然后在arr里添加了5个数据,打印原数组的时候会惊奇地发现avgX也变成了30个数据!这是因为数组之类引用数据类型,如果直接相等,相等于存储地址相等了,只要修改了一方,另一方会同步修改,正确的做法是在原数组里slice(0),全部截取原数组的数据,这时候我们不管如何修改arr,avgX都不会发生改变了。