[英]Copy array of Objects in angular 2
我有兩個名為'people'和'persons2'的數組,'persons2'數組將是'people'數組的副本,但問題是當我復制它時,我想要更改第二個數組,第一個數組是也在改變。 這是我的代碼:
export class AppComponent {
persons = [
{
name:'David',
lname:'Jeu'
}
];
persons2=[...this.persons];
constructor(){
console.log(this.persons[0]);
this.persons2[0].name='Drake';
console.log(this.persons[0]);
console.log(this.persons2[0]);
}
}
但問題是當我復制它,並且我想要更改第二個數組時,第一個數組也在改變
這是因為兩個數組中的對象共享相同的引用。 要執行深層復制,請嘗試以下操作:
let persons2 = person.map(x => Object.assign({}, x));
要么
let person2 = JSON.parse(JSON.stringify(person));
對於這些類型的操作,通常使用Lodash Clonedeep是明智的
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.