Вместо того, чтобы иметь несколько отдельных свойств с числовым индексом c, рассмотрите возможность использования вместо этого одного массива:
const qArr = localStorage.qArr
? JSON.parse(localStorage.qArr)
: new Array(7).fill(0);
Затем вместо присвоения переменным q
присвойте индексу qArr
, а для его сохранения используйте JSON.stringify
:
qArr[3] = 555;
localStorage.qArr = JSON.stringify(qArr);
Чтобы сложить все элементы в массиве, вы можете использовать reduce
:
totalPoints = qArr.reduce((a, b) => a + b, totalPoints);
Поскольку похоже, что это все в одном автономном скрипте, я настоятельно рекомендую объединить все соответствующие элементы, которые необходимо сохранить, в один объект, если это вообще возможно, чтобы не загрязнять localStorage с множеством отдельных свойств, которые действительно заслуживают того, чтобы быть в одном месте, а не рассредоточиваться, например:
const dataObj = localStorage.pointsData
? JSON.parse(pointsData)
: {
totalPoints: 0,
qArr: new Array(7).fill(0)
};
Затем выполните что-нибудь с dataObj.totalPoints
и dataObj.qArr
, и когда вам нужно сохраните это, сделайте что-нибудь вроде:
localStorage.pointsData = JSON.stringify(dataObj);