最常见的方法:
let arr = [1, 2, 3, { b: 1 }];
let newArr = JSON.parse(JSON.stringify(arr));
如果需要拷贝的数据中存在函数,可以使用下边的方法:
function copy(sure) {
const newSure = sure.constructor === Array ? [] : {}; //判断传入数据的构造器类型
for (let keys in sure) {
//遍历每一项
if (sure.hasOwnProperty(keys)) {
//判断数据身上的属性是否存在
if (sure[keys] && typeof sure[keys] === "object") {
//判断子属性的类型 如果是‘objcet’ 说明是引用数据类型 继续递归
newSure[keys] = copy(sure[keys]);
} else {
//进入这个条件说明是基本数据类型 直接赋值
newSure[keys] = sure[keys];
}
}
}
return newSure; //最后抛出一个新的数据
}