использование localStorage для подсчета - PullRequest
2 голосов
/ 03 марта 2012
var nicWinsVsMac;

 if (tempresult === win) {
            wincount = JSON.parse(localStorage.getItem (playerName + 'wincount'));
            wincount += 1;
            localStorage.setItem(playerName + 'wincount', wincount);

        winsvsopponent = 'WinsVs' + opponent;
        winsvsopponent = JSON.parse(localStorage.getItem(playerName + 'WinsVs' + opponent));
        winsvsopponent  += 1;
        console.log(winsvsopponent);
        localStorage.setItem(playerName + 'WinsVs' + opponent, 'winsVs' + opponent); 
        console.log(localStorage.getItem(nicWinsVsMac));    
    }

playerName и opponent - передаваемые параметры. В этом случае playerName = 'nic' и opponent = "Mac"

Мой браузер выдает мне «неожиданный токен w» в строке, где я анализирую localStorage. Я не могу понять, что происходит. Любая помощь будет отличной. Спасибо!

1 Ответ

0 голосов
/ 30 марта 2012

Вместо использования отдельной переменной localStorage для каждого атрибута игрока. Почему бы не сохранить все атрибуты игроков в одном объекте, а затем сохранить их в localStorage.

Например, вы можете сделать следующее:

var player = new Object();
player.name = 'Mac';
player.winCount = 3;
player.winAgainst = new Array();

localStorage.setItem(player.name, JSON.stringify(player));

var player1 = JSON.parse(localStorage.getItem(player.name));
console.log(player1.name + " has " + player1.winCount + " wins.");

Это позволяет вам сохранить все атрибуты проигрывателя в одной переменной localStorage, что значительно упрощает чтение и запись.

Что касается ошибки, которую вы получаете, я считаю, что проблема с вашим кодом заключается в том, что вы не используете JSON.stringify при вызове setItem.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...