Как сделать так, чтобы localStorage при добавлении не перезаписывал объект, а добавлял новый?

Для того чтобы при добавлении объекта в localStorage не производилась перезапись, а новый объект добавлялся к уже существующим, можно использовать следующий подход:

1. Получите текущее значение из localStorage с помощью метода getItem() и преобразуйте его в объект JavaScript.

const existingData = JSON.parse(localStorage.getItem('myData')) || [];

Обратите внимание, что мы используем оператор || для того, чтобы присвоить пустой массив, если значение в localStorage отсутствует или не может быть преобразовано в объект.

2. Добавьте новый объект к полученному результату.

existingData.push(newData);

3. Сохраните обновленное значение в localStorage с помощью метода setItem(), преобразовав объект JavaScript в строку с помощью метода JSON.stringify().

localStorage.setItem('myData', JSON.stringify(existingData));

Теперь каждый раз при добавлении объекта newData он будет добавляться к уже существующим объектам в localStorage, а не перезаписывать их.

Вот полный пример кода, который демонстрирует эту логику:

// Получение текущего значения из localStorage
const existingData = JSON.parse(localStorage.getItem('myData')) || [];

// Добавление нового объекта
const newData = { name: 'John', age: 28 };
existingData.push(newData);

// Сохранение обновленного значения в localStorage
localStorage.setItem('myData', JSON.stringify(existingData));

Теперь в localStorage будет храниться массив объектов с каждым добавлением нового объекта.