2017-06-29 78 views
-1

公正地分享了一段代碼,如果你是在同一個情況下,我會很有用。小心當你的對象包含的功能,他們也將被清除(在我的情況下,我沒有任何功能,所以我沒有真正管理案件)!的JavaScript:深拷貝和清除對象

在我來說,我需要在數據庫中(深)複製JSON對象創造出許多國際化的文檔(MongoDB中)(每種語言,〜15)。譯員將能夠填寫新的空JSON,然後我將能夠計算進度,以瞭解翻譯是否以100%完成。

我在這裏發佈代碼,以瞭解在ES6-7中是否有更好的解決方案(這是生產代碼和應用程​​序的一個非常重要的部分),或者在深度複製和清除同一時間。

+0

能否請您格式化您的問題部分更像是指出你正在試圖做的這是什麼問題? – Li357

+0

@AndrewLi我覺得現在好多了,讓我知道如果你沒事的話!感謝您的反饋意見。 –

+0

@AndrewLi對不起,有人喜歡沒有評論downvote然後.. –

回答

0

這裏是我的解決方案:

const obj = { 
 
    champ1: 'test', 
 
    champ2: 'test', 
 
    champ3: { 
 
     ch: 'test', 
 
     test: 'test' 
 
    } 
 
} 
 

 
function copyAndClearObject (obj) { 
 
    if (!obj) return 
 
    
 
    let json = {} 
 

 
    for (const [key, value] of Object.entries(obj)) { 
 
    if (value instanceof Object) { 
 
     json[key] = copyAndClearObject(value) 
 
    } else { 
 
     json[key] = null 
 
    } 
 
    } 
 

 
    return json 
 
} 
 

 
console.log(copyAndClearObject(obj))