javascript – 在Angular 2 TypeScript中深入复制数组

前端之家收集整理的这篇文章主要介绍了javascript – 在Angular 2 TypeScript中深入复制数组前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个数组的对象是一个输入.让我们称之为内容.

当尝试深入复制它时,它仍然有一个前一个数组的引用.

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

很久以前,我尝试过不同的方法,这些方法并不成功.

ES6方式:

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

切片方式:

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

在这两个数组中,数组中的所有对象都有状态:’Default’.

在Angular 2中深入复制数组的最佳方法是什么?

解决方法

我发现的唯一解决方案(几乎在发布问题后立即),是循环遍历数组并使用object.assign()

喜欢这个:

  1. public duplicateArray() {
  2. let arr = [];
  3. this.content.forEach((x) => {
  4. arr.push(Object.assign({},x));
  5. })
  6. arr.map((x) => {x.status = DEFAULT});
  7. return this.content.concat(arr);
  8. }

我知道这不是最佳的.我想知道是否有更好的解决方案.

猜你在找的JavaScript相关文章