У меня имеются две переменные.
При запуске приложения я добавляю в них одинаковые данные, но в процессе работы приложения меняю значения у массива departments.
При нажатии на кнопку "Сбросить" все данные в массиве departments должны замениться данными из массива defaultDepartments.
Первый раз всё отработает хорошо, но после этого данные у defaultDepartments начинают меняться одновременно с departments, хотя в коде этого нигде явно даже близко не указано.
То есть массивы ведут себя так, как будто ссылаются на одну и ту же область памяти.
В чём проблема? По какой причине данные в массиве defaultDepartments начинают меняться?
Хотя если явно сделать массив departments пустым, то массив defaultDepartments не изменится.
departments: LocalDepartment[] = [];
defaultDepartments: LocalDepartment[] = [];
ngOnInit(): void {
this.departments = this.formDepartments(departments, participants);
this.defaultDepartments = this.formDepartments(departments, participants);
}
reset(): void {
this.departments = [...this.defaultDepartments];
}
Если это важно, то вот структура этих массивов:
interface LocalDepartment {
id: number;
name?: string;
colleagues: LocalColleague[];
selectedCount: number;
isAllSelected: boolean;
}
interface LocalColleague {
id: number;
firstName: string;
lastName: string;
departmentId: number;
isSelected: boolean;
}