// 深拷贝
let s = {
name: "s",
age: 18,
friends: ["a", "b", "c"],
address: {
province: "湖北",
city: "武汉",
},
};
// 深拷贝
function copy(a) {
let obj = {};
for (let k in a) {
if (Array.isArray(a[k])) {
// 使用 Array.isArray 判断数组
obj[k] = a[k].map((item) => {
return typeof item === "object" ? copy(item) : item;
});
} else if (typeof a[k] === "object" && a[k] !== null) {
obj[k] = copy(a[k]);
} else {
obj[k] = a[k];
}
}
return obj;
}
const s2 = copy(s);
s2.name = "s2";
s2.friends[0] = "d";
s2.address.city = "襄阳";
console.log(s);
console.log(s2);