从 localStorage 检索数值数据

Numerical data retrieval from localStorage

所以我正在开发这款游戏,但我遇到了保存系统的问题。当我尝试保存和加载游戏时,我得到 playerLevel 作为 NaN,或者不是数字。我知道这是为什么,这是因为输出是引号内的数字。我需要知道是否有任何方法可以将变量设置为等于被回调的同一个变量。如果你不明白我的问题,这是我的代码:

function saveGame() {

    localStorage.setItem("PLAYERLEVEL", playerLevel);
    localStorage.setItem("PLAYERATTACK", Attack);
    localStorage.setItem("PLAYERDEFENSE", Defense);
    localStorage.setItem("PLAYERAGILITY", Agility);
    localStorage.setItem("PLAYERCOINS", Coins);
    localStorage.setItem("PLAYERHEALSLEFT", healsLeft);
    localStorage.setItem("PLAYERPOSSHEALS", possHealsLeft);
    localStorage.setItem("PLAYERLIVESLEFT", livesLeft);
};

function loadGame() {

    playerLevel = localStorage.getItem("PLAYERLEVEL");
    Attack = localStorage.getItem("PLAYERATTACK");
    Defense = localStorage.getItem("PLAYERDEFENSE");
    Agility = localStorage.getItem("PLAYERAGILITY");
    Coins = localStorage.getItem("PLAYERCOINS");
    healsLeft = localStorage.getItem("PLAYERHEALSLEFT");
    possHealsLeft = localStorage.getItem("PLAYERPOSSHEALS");
    livesLeft = localStorage.getItem("PLAYERLIVESLEFT");
};

在此先感谢您的帮助!

当你想在localStorage中检索一个数值数据时,你需要将数值转换回你需要的数据类型的数值(用parseInt()或parseFloat()),因为 localStorage 将所有内容都存储为字符串,所以这样做:

playerLevel = parseInt(localStorage.getItem('PLAYERLEVEL'));