Вместо использования отдельной переменной 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.