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?


检查这个:

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

这对我有用:

this.listCopy = Object.assign([], this.list);

简单:

let objCopy  = JSON.parse(JSON.stringify(obj));
链接地址: http://www.djcxy.com/p/40712.html

上一篇: object.assign角度2无法正确工作

下一篇: 在Angular 2 + TypeScript中深度复制数组