Wednesday, October 31, 2018

javascript - Deep copy an array in Angular 2 + TypeScript



I have an array of objects that is an input. Lets call it content.



When trying to deep copy it, it still has a reference to the previous array.



I need to duplicate that input array, and change one property of the duplicated part.



So long I've tried different methods that weren't successful.




ES6 way:



public duplicateArray() {
arr = [...this.content]
arr.map((x) => {x.status = DEFAULT});
return this.content.concat(arr);
}



The slice way:



public duplicateArray() {
arr = this.content.slice(0);
arr.map((x) => {x.status = DEFAULT});
return this.content.concat(arr);
}


In both of them all the objects inside the array have status: 'Default'.




What's the best approach to deep copy the array in Angular 2?


Answer



Check this:



  let cloned = source.map(x => Object.assign({}, x));

No comments:

Post a Comment

plot explanation - Why did Peaches' mom hang on the tree? - Movies & TV

In the middle of the movie Ice Age: Continental Drift Peaches' mom asked Peaches to go to sleep. Then, she hung on the tree. This parti...