Ваш код в выглядит корректно, и я не вижу проблемы с использованием localStorage. Однако, я обнаружил, что вы используете разные переменные для подсчета среднего результата: averageResults и averageResult. Пожалуйста, убедитесь, что вы используете правильные переменные.
Вместо использования индекса i для доступа к элементам массива averageResults, вы можете напрямую использовать значение, полученное из localStorage. Вот исправленный код:
const allTests = ['result__1-1', 'result__1-2', 'result__2-1', 'result__2-2', 'result__2-3', 'result__3-1'];
let averageResults = [];
let averageResult = 0;
let result = 0;
for (let i in allTests) {
if (localStorage.getItem(allTests[i])) {
result++;
};
if (localStorage.getItem(allTests[i]) !== null) {
let currentResult = Number(localStorage.getItem(allTests[i]));
averageResults.push(currentResult);
console.log('averageresults[i]', currentResult);
averageResult += currentResult;
};
};
averageResult /= averageResults.length;
Проверьте, исправляет ли это вашу проблему. Если проблема все еще существует, проблема может быть связана с неправильными данными в localStorage или какой-то другой частью кода, которую вы не предоставили.
Есть код, который высчитывает средний балл на основе пройденных тестов.
Массив allTests содержит все тесты, а цикл проверяет какие из ячеек существуют в локальном хранилище. Проблема в том что если какой то ячейки нету цикл выдает NaN в конце. Лазил дебаггером, проблема в том что цикл почему то в конце (result__3-1) берет undefined
Вот ссылка на страничку: https://dlazder.github.io/Astronomicschool/html/other/profile.html