在Angular 2 + TypeScript中深度复制数组

我有一个输入数组的对象。 让我们称它为content

当试图深度复制它时,它仍然有一个对前一个数组的引用。

我需要复制该输入数组,并更改重复部分的一个属性。

只要我尝试了不成功的不同方法。

ES6方式:

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

slice方式:

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

在他们两个中,数组内的所有对象都具有status: 'Default'

在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/40711.html

上一篇: Deep copy an array in Angular 2 + TypeScript

下一篇: Why and when to use angular.copy? (Deep Copy)