js遞歸實現深拷貝


 1         // 深拷貝
 2       function cloneDeep(obj) {
 3         // 3.根據obj為對象或者數組,產生一個空的對象或數組,存放數據
 4         var newobj = obj instanceof Array ? [] : {},
 5         // 1.for...in進入循環
 6         for (var k in obj) {
 7           // 2.判斷對象的第一個屬性是否為數組或者對象,如果是,則進入遞歸
 8           // if (obj[k] instanceof Array) {
 9           //   newobj[k] = cloneDeep(obj[k])
10           // } else if (obj[k] instanceof Object) {
11           //   newobj[k] = cloneDeep(obj[k])
12           // }
13           // 4.上面兩個執行邏輯一樣,進行合並
14           if (typeof obj[k] === 'object') {
15             newobj[k] = cloneDeep(obj[k])
16           } else {
17             // 5.如果數據為基本類型,則直接賦值
18             newobj[k] = obj[k]
19           }
20         }
21         // 6.把存放了數據的新對象返回出去
22         return newobj
23       }    

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM