Tuesday, May 21, 2024
 Popular · Latest · Hot · Upcoming
84
rated 0 times [  91] [ 7]  / answers: 1 / hits: 145675  / 8 Years ago, fri, february 19, 2016, 12:00:00

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?


More From » typescript

 Answers
14

Check this:



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

[#63257] Wednesday, February 17, 2016, 8 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
koltonadolfow

Total Points: 71
Total Questions: 118
Total Answers: 102

Location: Vietnam
Member since Sun, Oct 18, 2020
4 Years ago
;