當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Lodash _.cloneDeep()用法及代碼示例


_.cloneDeep()方法用於創建值的深層副本,即,它以遞歸方式克隆該值。此方法類似於_.clone()方法。

用法:

_.cloneDeep( value )

參數:此方法接受上述和以下描述的單個參數:

  • value:此參數保存需要遞歸克隆的值。

返回值:此方法返回深度克隆的值。

範例1:克隆簡單對象



const _ = require('lodash'); 
  
var obj = { 
    x:23 
}; 
  
// Deep copy 
var deepCopy = _.cloneDeep(obj); 
  
console.log('Comparing origianal with'
    + ' deep ', obj === deepCopy); 
  
obj.x = 10; // Changing original value 
  
console.log('After changing original value'); 
  
console.log("Original value ", obj); 
  
console.log("Deep Copy value ", deepCopy);

輸出:

Comparing origianal with deep  false
After changing original value
Original value  { x:10 }
Deep Copy value  { x:23 }

範例2:克隆複雜對象

const _ = require('lodash'); 
   
var obj = [{  x:1 }, {y:2}]; 
  
// Deep copy 
var deepCopy = _.cloneDeep(obj); 
   
console.log('Comparing origianal with deep ', 
            obj[0] === deepCopy[0]); 
   
// Changing orignal value 
obj[0].x = 10; 
   
// Values after changing original value 
console.log("After changing original value"); 
   
console.log("Original value ", obj); 
   
console.log("Deep Copy value ", deepCopy);

輸出:

Comparing origianal with deep  false
After changing original value
Original value  [ { x:10 }, { y:2 } ]
Deep Copy value  [ { x:1 }, { y:2 } ]

因此,在這裏我們看到,更改原始值後,值的深層副本沒有改變,因為_.cloneDeep()遞歸地深深複製了該值。

注意:在正常的JavaScript中這將無法正常工作,因為它需要安裝庫lodash。

參考: https://lodash.com/docs/4.17.15#cloneDeep




相關用法


注:本文由純淨天空篩選整理自Dharmendra_Kumar大神的英文原創作品 Lodash | _.cloneDeep() Method。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。