【问题标题】:need to store the data in an array inside localstorage?需要将数据存储在本地存储中的数组中吗?
【发布时间】:2013-07-08 17:58:36
【问题描述】:

我制作了一个小型 sumon 数学游戏,在其中我创建了 9 个列表项,每个列表项上的数字不同,并且每次页面重新加载时值都会发生变化(随机值每隔一段时间出现一次)。

用户必须点击列表项才能实现目标,例如假设实现目标是 7,那么用户将点击 5 和 2 或水来实现 7。

现在我想做的是假设当我实现目标时我想将它保存在我的本地存储中,下次当用户重新启动它并实现一个我也想存储在本地存储中的新值时,我的意思是什么就是每次用户达到目标时,将数据以数组的形式存储在localstorage中。

这里是 data_stack 数组,它将值相加并将其存储到当前值中,所以我想每次都将这个 currentval 推送到一个数组中。请在这里帮助我

var currentval =  eval(data_stack.join('+'));
console.log(currentval);

【问题讨论】:

    标签: javascript jquery html local-storage


    【解决方案1】:

    键/值本地存储(又名Web Storage)只接受字符串。但是,您可以对数组进行 JSON 编码并存储 JSON,因此当您检索它时只需将其解码回数组即可。

    将数组存储为 JSON:

    // data_stack is an array
    // store as JSON
    localStorage.setItem('data_stack', JSON.stringify(data_stack));
    

    检索 JSON 并对其进行解码:

    var raw = localStorage.getItem('data_stack');
    if(raw !== null) {
        var data_stack = JSON.parse(raw);
        // now you can push to data_stack or whatever
        data_stack.push('xyz');
    }
    

    【讨论】:

    • 嘿,MrCode,谢谢,但我需要将结果存储在数组中,所以每次我必须将结果推送到数组中,我们只是在推送 data_stack 数组到其他数组或 var
    • 我明白你在说什么,但无论你想在本地存储中保留什么数组都没有关系,同样的原则适用于 JSON 对其进行编码以进行存储,然后 JSON 将其解码回一个数组您可以根据需要进行操作,然后存储回本地存储。
    • @MrCode 的解决方案看起来不错。但是,如果您尝试追加,请考虑将索引的常量键保留为每个分数的键。然后你可以独立编码每个..
    猜你喜欢
    • 2013-10-03
    • 1970-01-01
    • 2015-12-23
    • 2014-05-10
    • 2016-12-28
    • 1970-01-01
    • 1970-01-01
    • 2023-01-27
    • 1970-01-01
    相关资源
    最近更新 更多