let obj = {
userName: 'xuliang',
age: 200,
isDead: false,
wife: undefined,
money: null,
like: {
game: 'lol',
music: 'rock',
},
arr: [1, 2, 3],
say(a,v,b) {
return 'hello world';
},
};
function type(data) {
let s = Object.prototype.toString;
return s.call(data).match(/(\S*)]/)[1];
}
function deepClone(data) {
dataType = type(data);
if (dataType == 'Object') {
let clone = {};
for (let key in data) {
if (type(data[key]) == 'Object' || type(data[key]) == 'Array') {
clone[key] = deepClone(data[key]);
} else {
clone[key] = data[key];
}
}
return clone;
} else if (dataType == 'Array') {
let arr = [];
for (let value of data) {
arr.push(value);
}
return arr;
} else {
return data;
}
}
JS递归实现深拷贝
最新推荐文章于 2023-12-31 21:20:14 发布