// deepCopy
function typeOf(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)];
}
function deepCopy(data) {
const t = typeOf(data);
let o;
if (t === 'array') {
o = [];
} else if ( t === 'object') {
o = {};
} else {
return data;
}
if (t === 'array') {
for (let i = 0; i < data.length; i++) {
o.push(deepCopy(data[i]));
}
} else if ( t === 'object') {
for (let i in data) {
o[i] = deepCopy(data[i]);
}
}
return o;
}
vue js deepCopy 深度拷贝 深拷贝
最新推荐文章于 2025-02-18 10:05:52 发布
本文深入探讨了深拷贝的实现方法,通过自定义类型判断函数和递归策略,确保对象和数组能被完全复制,避免引用共享带来的问题。适用于前端开发中复杂数据结构的复制场景。
2044

被折叠的 条评论
为什么被折叠?



