Tengo una matriz de objetos que es una entrada. Llamémoslo content .
Al intentar copiarlo en profundidad, todavía tiene una referencia a la matriz anterior.
Necesito duplicar esa matriz de entrada y cambiar una propiedad de la parte duplicada.
Tanto tiempo he intentado diferentes métodos que no tuvieron éxito.
ES6 manera:
public duplicateArray() { arr = [...this.content] arr.map((x) => {x.status = DEFAULT}); return this.content.concat(arr); } La forma slice :
public duplicateArray() { arr = this.content.slice(0); arr.map((x) => {x.status = DEFAULT}); return this.content.concat(arr); } En ambos, todos los objetos dentro de la matriz tienen el status: 'Default' .
¿Cuál es el mejor enfoque para copiar en profundidad la matriz en Angular 2?
Mira esto:
let cloned = source.map(x => Object.assign({}, x));Sencillo:
let objCopy = JSON.parse(JSON.stringify(obj));Esto también funciona (solo para arreglos)
let objCopy2 = obj.slice()Esto es trabajo para mí:
this.listCopy = Object.assign([], this.list);