function copy(obj) {
// 判断如果是基本类型就返回
if (typeof obj !== 'object') return obj
// 判断是数组还是对象
const newObj = Array.isArray(obj) ? [] : {}
for(let key in obj) {
newObj[key] = copy(obj[key]) // 自己调用自己,递归
}
return newObj
}
// 验证
const obj = {
name: 'li',
age: 18,
arr: [1, 2, 3]
}
const result = copy(obj)
console.log(result)
console.log(result.arr === obj.arr) // false