[英]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.