У меня есть массив объектов, который является входом. Позволяет называют его 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'
.
Что лучший подход должен глубоко скопировать массив в Угловых 2?
let newArr = arr.slice();
Это - то, как в JS массивы копируются. Никакая потребность думать о чем-то новом!