JavaScrip中数组内容的赋值
今天在写东西时发现一个问题
起先是因为我想操作一个数组A,又不想让这个数组A改变,因为以后还需要使用,于是想着把这个数组A赋值给另外一个数组B,这样的话我可以对B进行操作又没有改变数组A,后面还可以继续使用。
代码部分如下图:
为什么会出现问题
上网查找原因是因为我这句话let arr1=arr;
这个不是把值赋值过去,而是arr1作为arr的引用,arr1改变的是arr,如何arr1指向的是一个新数组,arr把元素值全部赋值过去?
如何解决这个问题
如果是普通数组那么可以用普通数组可以使用数组的concat()
来解决,例如let arr1=[].concat(arr)
来给新数组赋值
concat
的定义是:连接两个或更多的数组,并返回结果,该方法不会改变现有数组,而仅仅会返回数组的一个副本。
以上问题就解决了