Почему не работает клонирование?
Потому, что ваш вариант возвращает копию массива, но объекты в нем не копируются. А вот это
let productsCopy = JSON.parse(JSON.stringify(arr));
Как раз создаст копию всей структуры не зависимо от вложенности.
Потому, что ваш вариант возвращает копию массива, но объекты в нем не копируются. А вот это
let productsCopy = JSON.parse(JSON.stringify(arr));
Как раз создаст копию всей структуры не зависимо от вложенности.