var deepCopy = (obj) => {
}
var deepCopy = (obj) => {
var ret = {}
return ret
}
var deepCopy = (obj) => {
var ret = {}
for(var key in obj){
ret[key] = obj[key]
}
return ret
}
- 到这里已经完成了第一层的数据拷贝,下面进行第二层数据拷贝
var deepCopy = (obj) => {
var ret = {}
for(var key in obj){
var value = obj[key]
if(typeof valeu === 'object'){
for(var key1 in value){
var value1 = value[key1]
ret[key][key1] = value1
}
} else ret[key] = value
}
return ret
}
- 通过上面方法进行一层一层的循环,就可以把对象全部拷贝一遍
- 下面就需要用到递归的思想
var deepCopy = (obj) => {
var ret = {}
for(var key in obj){
var value = obj[key]
ret[key] = typeof value === 'object' ? deepCopy(value) : value
}
return ret
}
- 传过来的数据是否是对象
- 对象是否为空
var deepCopy = (obj) => {
if (!isObject(obj)) return obj;
if (JSON.stringify(obj) === '{}') return {}
var ret = {}
for(var key in obj){
var value = obj[key]
ret[key] = isObject(value) ? deepCopy(value) : value
}
return ret
}
function isObject(isObj) {
return typeof isObj === 'object' && isObj !== null;
}