Испортил мой код, локальное хранилище работало, теперь оно снова не работает, понятия не имею, что изменилось
Я пытался установить локальное хранилище лучших игровых времен, поэтому создал пустой массив `
gBestScores
- и сравнил значение последнего лучшего результата с текущим,и в зависимости от результата я либо толкаю его, либо нет в массив.
Локальное хранилище должно было его сохранить. Сохранение не происходит, и массив остается пустым. Этот `
currScore
- показывает правильное содержание часов.`
lastBestScore
- это не определено. Iv'e старался изо всех сил кодировать 2 стартовых раза, чтобы -1 не возвращался как неопознанный, это не сработало, и он работает заранее, не делая этогосравнение и хранение работали, я понятия не имею, что я изменил, ctrl-Z не удалось спасти меня,
надеюсь, ты сможешь.
edit: я сделал еще одну проверку, массив переписывается на 0, когда функции в init происходят, даже с жестко закодированными значениями, понятия не имею, почему
`var gBestScores =[]`
в ините у меня есть:
var retrievedData = localStorage.getItem("scores"); gBestScores = JSON.parse(retrievedData); bestScore.innerHTML = gBestScores[gBestScores.length - 1]
все остальное:
function checkGameStatus() { // debugger var currScore = result.innerHTML var lastBestScore = gBestScores[gBestScores.length-1] if ((gLevel.SIZE ** 2 - gLevel.MINES) === gGame.shownCount && gLevel.MINES === gGame.markedCount) { gElBtn.innerHTML = WIN gGame.isOn = true stopwatch.stop() if (currScore > lastBestScore) { gBestScores.push(currScore) } } else if (gGame.isOn === true) { gElBtn.innerHTML = SAD stopwatch.stop() if (currScore > lastBestScore) { gBestScores.push(currScore) } } localStorage.setItem("scores", JSON.stringify(gBestScores)); bestScore.innerHTML = lastBestScore }
Что я уже пробовал:
попробовал отладку, она действительно возвращается как нулевая, понятия не имею, как это исправить, так как раньше она работала
Gerry Schmitz
Попробуйте печенье.
ZurdoDev
Отладьте код и проверьте localStorage сразу после записи в него.
gggustafson
Могу я предложить вам переработать ваш дизайн. В вашем checkGameStatus вы выполняете слишком много действий (правило состоит в том, чтобы написать оператор, описывающий, что делает метод; если он включает "и", "когда", "после" и т. д., Ваш метод должен быть разбит). Я бы переместил все действия localStorage в их собственные методы (например, get_local_storage, save_local_storage). Это значительно облегчит отладку. Это означает, что checkGameStatus должен вызвать get_local_storage, выполнить некоторые сравнения и, при необходимости, вызвать save_local_storage. Кроме того, используйте параметры, они локализуют значения внутри вызываемого метода.