最終形態(tài)
// 深拷貝
function deepCopy(data) {
if(data === undefined || data === null) return data;
let __copy;
if(data instanceof Date) __copy = new Date(data);
else __copy = new data.constructor();
for(let key in data) {
if(!data.hasOwnProperty(key)) continue;
let item = data[key];
if(item instanceof Object) {
__copy[key] = deepCopy(item);
} else {
__copy[key] = item;
}
}
return __copy;
}
// 深度合并
function deepAssign(origin, obj) {
if(arguments.length > 2) {
return deepAssign(deepAssign(arguments[0], arguments[1]), ...([].slice.call(arguments, 2)));
}
for(const key in obj) {
if(!Object.prototype.hasOwnProperty.call(obj, key)) ;
else {
let item = obj[key],
o = origin[key],
isObj = item instanceof Object,
isArr = item instanceof Array;
if(!o || o.constructor !== item.constructor) {
origin[key] = isArr ? [].concat(item) : isObj ? deepAssign({}, item) : item;
} else {
origin[key] = isArr ? o.concat(item) : isObj ? deepAssign(o, item) : item;
}
}
}
return origin;
}
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。