-
ES5
const a1 = [1, 2];
const a2 = a1.concat();
a2[0] = 2;
a1 // [1, 2] -
ES6扩展运算符
const a1 = [1, 2];
// 写法一
const a2 = […a1];
// 写法二
const […a2] = a1; -
适用 多层 数组嵌套的深拷贝
var ary2 = JSON.parse(JSON.stringify(ary1));
//此方法适用于Oject的深度拷贝,因为Array属于Oject类型,所以也适用于此处;
//需要注意的是:作为Oject的深度拷贝时,要复制的function会直接消失,所以这个方法只能用在单纯只有数据的对象。 -
通过递归实现 多层 的深拷贝
function deepCopy(source){
if (typeof source != “object”) {
return source;
}
if (source == null) {
return source;
}
var newObj = source.constructor === Array ? [] : {}; //开辟一块新的内存空间
for (var i in source) {
newObj[i] = deepCopy(source[i]);
}
return newObj;
}
数组复制的几种方法
最新推荐文章于 2023-10-14 21:12:20 发布