手寫面試題
阿新 • • 發佈:2022-02-23
1. 簡單的深拷貝
// 定義一個深拷貝函式 接收目標target引數 function deepClone(target) { // 定義一個變數 let result; // 如果當前需要深拷貝的是一個物件的話 if (typeof target === 'object') { // 如果是一個數組的話 if (Array.isArray(target)) { result = []; // 將result賦值為一個數組,並且執行遍歷 for (let i in target) { // 遞迴克隆陣列中的每一項 result.push(deepClone(target[i])) } // 判斷如果當前的值是null的話;直接賦值為null } else if (target === null) { result = null; // 判斷如果當前的值是一個RegExp物件的話,直接賦值 } else if (target.constructor === RegExp) { result = target; } else { // 否則是普通物件,直接for in迴圈,遞迴賦值物件的所有值 result = {}; for (let i in target) { result[i] = deepClone(target[i]); } } // 如果不是物件的話,就是基本資料型別,那麼直接賦值 } else { result = target; } // 返回最終結果 return result; } let obj1 = { name: 'name', age: 'age', aa: '', bb: null, cc: undefined } let ob2 = deepClone(obj1) ob2.bb = 'xx1' console.log(obj1) console.log(ob2)
遇見問題,這是你成長的機會,如果你能夠解決,這就是收穫。
作者:明月人倚樓出處:https://www.cnblogs.com/IwishIcould/
想問問題,打賞了卑微的博主,求求你備註一下的扣扣或者微信;這樣我好聯絡你;(っ•̀ω•́)っ✎⁾⁾!
如果覺得這篇文章對你有小小的幫助的話,記得在右下角點個“推薦”哦,或者關注博主,在此感謝!
萬水千山總是情,打賞5毛買辣條行不行,所以如果你心情還比較高興,也是可以掃碼打賞博主(っ•̀ω•́)っ✎⁾⁾!
想問問題,打賞了卑微的博主,求求你備註一下的扣扣或者微信;這樣我好聯絡你;(っ•̀ω•́)っ✎⁾⁾!
支付寶 微信 本文版權歸作者所有,歡迎轉載,未經作者同意須保留此段宣告,在文章頁面明顯位置給出原文連線如果文中有什麼錯誤,歡迎指出。以免更多的人被誤導。