数组深克隆比较灵巧的几种方式
- 扩展运算符
扩展运算符可以将数组转换为一个用逗号分隔的参数序列;
由此延伸的克隆方式;
let arr = [...[1, 2, 3]];
- concat()
数组的连接返回被连接后数组的一个副本;
通过这种方式也可以进行克隆;
let arr = [1, 2, 3].concat();
- slice()
slice可以从已有的数组中返回选定的元素;
并且在不改变原数组的情况下返回一个新的数组;
那么在不删除任何元素的情况下返回的不就是和原数组一样的新数组么;
let arr = [1, 2, 3].slice();
如果数组内的值是对象的情况下;以上所有方式全部报废;这个时候就需要换个思路
-
转换为json字符串
let arr = JSON.parse(JSON.stringify([a: 1]));