2017-04-26 42 views
1

我需要使用打字稿克隆數組對象數組對象的變化,深性能有一定的價值,但是當我克隆它,它終於如何我可以在陣列對象打字稿深克隆數組對象

dokey(xData : any) { 
     _.keys(xData).forEach((x: any) => { 
      xData[x] = _.isArray(xData[x]) ? this.duplicateArray(xData[x]) : xData[x]; 
     }); 
     return xData; 
    } 

duplicateArray(content: Object[]) { 
    let arr: any = []; 
    content.forEach((x: any) => { 
     arr.push(Object.assign({}, this.dokey(x))); 
    }) 
    return arr; 
} 

mainFunc() { 
    let var1: any = [{ a: [{ q: '99' }, { w: '98' }] }, { b: '2' }]; 
    let var2 = this.duplicateArray(var1); 
    var2[0].a[0].q = 'a002'; 
    console.log(var1, var2); 
} 

參考應該不會重複,但重複的

enter image description here

我如何爲深克隆它做什麼?

+1

是您的JSON對象序列化?如果是這樣,你可以調用'JSON.parse(JSON.stringify(var1))'來克隆它。 – jrossi

+0

[在JavaScript中深入克隆對象的最有效方法是什麼?](http://stackoverflow.com/questions/122102/what-is-the-most-efficient-way-to-deep-clone -an-對象中的JavaScript) – msanford

回答