Чтобы значение переменной в исходном массиве не менялось, а изменения происходили только в массиве объектов, можно создать копию объектов из исходного массива и работать с ними. В JavaScript можно создать поверхностную (shallow) или глубокую (deep) копию объектов.
Для создания поверхностной копии объекта можно использовать метод `Object.assign()` или оператор spread (`...`), а для создания глубокой копии объекта можно воспользоваться методом `JSON.parse()` и `JSON.stringify()`.
Вам нужно изменить код следующим образом:
1. Создайте глубокую копию каждого объекта массива `countersDataTable` в новый массив `copiedCountersDataTable`:
```javascript
const copiedCountersDataTable = JSON.parse(JSON.stringify(countersDataTable));
```
2. Замените все ссылки на `countersDataTable` в коде на `copiedCountersDataTable`.
```javascript
const count = copiedCountersDataTable.findIndex(el => el.id === counter_selected.id);
if (count > -1) {
// do something with copiedCountersDataTable[count]
}
function reset() {
// reset copiedCountersDataTable
}
```
Теперь изменения состояния в массиве `counter_selected` не будут влиять на массив `copiedCountersDataTable`, а функция `reset` сможет сбросить значения массива `copiedCountersDataTable`.