Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Как получить копию localStorage? (https://javascript.ru/forum/misc/73314-kak-poluchit-kopiyu-localstorage.html)

Malleys 05.04.2018 14:22

localStorage так и так уничтожает инфо о типах, поскольку приводит назначенные ключи к строковому предствлению

localStorage.re = /a/gi;
alert(localStorage.re.constructor.name); // String, а не RegExp

Malleys 05.04.2018 14:25

Ещё придумал способ скопировать localStorage

myCopy = Object.assign({}, localStorage);
console.log(myCopy);

laimas 05.04.2018 14:27

Цитата:

Сообщение от Malleys
Object.assign({}, localStorage);

Удобно, но ишак не поддерживает.

sortarray 05.04.2018 14:28

Да, Вы правы, похоже, приведения к строкам происходят через setItem, там все хранится в строках

geekvar 05.04.2018 19:25

j0hnik, в цикле пройти не получится, т.к. в localStorage хранятся определенные значения, которые подставляются к концу ссылки, и происходит переход по этой новой ссылке. Н-р: сайт.ру/профиль.php?игрок=значение
Поэтому чтобы исключить "зацикливание" юзерскрипта на одной странице, единственное что пришло мне в голову удалить использованное значение из localStorage.

localStorage.setItem('activePL', JSON.stringify(data));


В браузере нашел созданный localStorage с ключем activePL. Теоретически единственное что осталось, чтобы все заработало, это скопировать localStorage выше с новым ключем н-р copeActivePL.

j0hnik 05.04.2018 19:36

geekvar,
Так сохраните отдельный ключ в том же localStorage и модифицируйте его как вам нужно.

geekvar 05.04.2018 20:06

Все, наконец получилось включить мозги. Спасибо за ответы!

Malleys 04.08.2018 07:28

Цитата:

Сообщение от Malleys (Сообщение 482426)
способ скопировать localStorage


Недавно вышло 9-ое издание спецификации ECMAScript, в котором описан оператор расширения объекта.
myCopy = { ...localStorage };
console.log(myCopy);


Часовой пояс GMT +3, время: 07:28.