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

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

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

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

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

ES6方式:

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

切片方式:

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

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

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

解决方法

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

喜欢这个:

public duplicateArray() {
  let arr = [];
  this.content.forEach((x) => {
    arr.push(Object.assign({},x));
  })
  arr.map((x) => {x.status = DEFAULT});
  return this.content.concat(arr);
}

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

猜你在找的JavaScript相关文章