@Tolinme

Как сохранить данные в js?

Я сделал простенький кликер на js и мне надо сделать так чтобы число кликов сохранялись в браузер
у меня получилось сделать что-то подобное с помощью localStorage но в коде с самого начала переменная обнуляется так как есть
let count = 0;
  • Вопрос задан
  • 220 просмотров
Решения вопроса 2
vovvkka
@vovvkka
Не очень понятен заданный вопрос, но если вы имеете в виду то, что при перезагрузке страницы у вас снова клики сбрасываются на ноль, потому что файл js читается заново, а у вас let count = 0? Нужно сделать проверку, если в storage уже есть определенное число кликов, то приравнивать число взятое из storage к count:

let count = 0;
localStorage.getItem('count') ? count = parseInt(localStorage.getItem('count')) : 0; 
// parseInt потому, что в значении storage всегда хранится строка.
Ответ написан
Rsa97
@Rsa97
Для правильного вопроса надо знать половину ответа
let count = +localStorage.getItem('count');
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
dollar
@dollar
Делай добро и бросай его в воду.
let count = localStorage.count !== undefined ? localStorage.count : 0;

Либо императивно:
let count = localStorage.count;
if (count === undefined) count = 0;

Сохранение (в другом месте после инициализации), очевидно, также:
localStorage.count = count;
Ответ написан
Комментировать
Seasle
@Seasle Куратор тега JavaScript
const createPersistCounter = (name) => {
	let value = Number(localStorage.getItem(name) || '');
	if (Number.isNaN(value)) {
		value = 0;
	}

	const action = (fn) => () => {
		fn();
		localStorage.setItem(name, value);
	};

	const inc = action(() => (value += 1));
	const dec = action(() => (value -= 1));
	const reset = action(() => (value = 0));

	return {
		get value() {
			return value;
		},
		inc,
		dec,
		reset
	};
};

const counter = createPersistCounter('clicks');

counter.inc(); // localStorage['clicks'] == 1
counter.inc(); // localStorage['clicks'] == 2
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы