function cloneDeep(data) {
let t = type(data), o, i, ni;
if (t === 'array') {
o = [];
for (i = 0, ni = data.length; i < ni; i++) {
o.push(cloneDeep(data[i]))
};
return o;
} else if (t === 'object') {
o = {};
for (i in data) {
o[i] = cloneDeep(data[i])
}
return o;
} else {
return data
}
}
function type(obj) {
const toString = Object.prototype.toString;
const map = {
'[object Boolean]' : 'boolean',
'[object Number]' : 'number',
'[object String]' : 'string',
'[object Function]' : 'function',
'[object Array]' : 'array',
'[object Date]' : 'date',
'[object RegExp]' : 'regExp',
'[object Undefined]' : 'undefined',
'[object Null]' : 'null',
'[object Object]' : 'object'
};
return map[toString.call(obj)]
}
deepClone深拷贝
最新推荐文章于 2022-07-22 11:37:40 发布