JavaScript深拷贝
拷贝之后的数据发生了改变不会影响到被拷贝的数据
// 判断数据是否是一个对象类型
const isObj = (obj) => typeof obj === "object" && obj !== null;
const deepClone = (obj) => {
// 根据被拷贝的数据类型来创建数据类型
const newObj = obj instanceof Array ? [] : {};
// 进行遍历获取每一次的key
for (const item in obj) {
// 使用一个临时变量来进行接收
const temp = obj[item];
// 判断临时变量是否是一个对象类型,如果是就继续调用deepClone函数
newObj[item] = isObj(temp) ? deepClone(temp) : temp;
}
return newObj;
};
const arr = [1, 2, 3];
const newArr = deepClone(arr);
console.log(arr, newArr); // [1,2,3] [1,2,3]
newArr[0] = 0;
console.log(arr, newArr); // [1,2,3] [0,2,3]
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。