我有一个作为输入的对象array.我们称之为content.

当try 深度复制它时,它仍然有对上一个数组的引用.

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

这么长时间以来,我try 了不同的方法,但都没有成功.

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));

Typescript相关问答推荐

Typescript问题和缩减器状态不会在单击时添加用途.属性'状态和调度'不存在于userContextType类型上'|null'

相同端点具有不同响应时的RTKQuery类型定义

当类型断言函数返回假时,TypScript正在推断从不类型

Angular中的其他服务仅获取默认值

rxjs forkJoin在错误后不会停止后续请求

Typescript泛型类型:按其嵌套属性映射记录列表

部分类型化非 struct 化对象参数

如何创建一家Reduxstore ?

正交摄影机正在将渲染的场景切成两半

如何将TS泛型用于react-hook-form接口?

缩小对象具有某一类型的任意字段的范围

带投掷的收窄类型

Cypress-验证别名的存在或将别名中的文本与';if';语句中的字符串进行比较

是否可以定义引用另一行中的类型参数的类型?

完全在类型系统中构建的东西意味着什么?

可以将JS文件放在tsconfig';s includes/files属性?或者,我如何让tsc判断TS项目中的JS文件?

如何创建允许使用带有联合类型参数的Array.from()的TS函数?

显式推断对象为只读

如何使用 AWS CDK 扩展默认 ALB 控制器策略?

带有 Select 器和映射器的Typescript 泛型