js 實現對一個對象的深拷貝


你可能以為我要來一波循環操作,對數據結構進行分析什么的,不,方法如下(僅適用json那樣的對象或者數組,如果對象或者數組中有類似Date,Function這種是不適用的

1 const obj = {
2   key1: 'value1',
3   key2: 'value2',
4   key3: ['index1'],
5   key4: {
6     subKey1: 'subValue1'
7   }
8 }
9 const obj2 = JSON.parse(JSON.stringify(obj))

示例中  obj2  就是對  obj  進行深拷貝后的到的對象

此方法存在一定弊端,就是如果  JSON.parse() 方法中傳入的不是一個 JSON 字符串的話會報錯,影響之后的代碼執行,所以我們要對其進行處理下,如下

1 try {
2   const obj2 = JSON.parse(JSON.stringify(obj))
3 } catch (error) {
4   const obj2 = {}
5 }

附加   JSON.stringify  用法示例, JSON.stringify  會將傳入的參數轉成字符串,如果是數組或對象的話,會將其平鋪開來轉成字符串,示例如下

* 注意:  JSON.stringify 傳入字符串的話會返回一個原字符串加了雙引號后的新字符串

以上


免責聲明!

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



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