function deepclone(obj){
let result;
switch(typeof obj){
case 'undefined':
break;
case 'object':
if (obj === null) {
result = null
} else if (Object.prototype.toString.call(obj) === '[object Array]') {
result = []
obj.map(item => result.push(deepclone(item)))
} else {
result = {};
for (var k in obj) {
result[k] = deepclone(obj[k])
}
}
break;
default:
result = obj;
break
}
return result
}
arr = [
{name: 'xiaoming', age: 18},
false,
18,
null,
undefined,
[1, 2, 3, 4]
]
let cloneArr = deepclone(arr);
console.log(cloneArr);
cloneArr[0].name = 'xiaohong';
cloneArr[1] = 'xixixi';
console.log(arr)
console.log(cloneArr)
運(yùn)行結(jié)果:
運(yùn)行結(jié)果.png