【问题标题】:Converting string back to an array from local storage将字符串从本地存储转换回数组
【发布时间】:2015-06-30 20:31:15
【问题描述】:

我可能在几英里之外,但谁能告诉我这是否可能。

 function myFunction(){

 var myArray = (localStorage.getItem("storedArray"));
 myArray = jQuery.makeArray( myArray );

 myArray.push(['someone@myemail','15','myUsername']);
 localStorage.setItem("storedArray", JSON.stringify(grabArray));

 localStorage.removeItem("storedArray");

 }

每次运行此函数时,我都希望从本地存储推送值中获取一个数组,然后将其存储回来,就像更新它一样。这个想法是,一旦我的应用程序中发生事件,该项目将被清除,以重新开始记录。

当我从本地存储中获取项目时,我尝试将其转回数组,但我认为这不是这样做的方法,因为它没有返回任何内容。 JSON可以做任何事情吗?

谢谢。

【问题讨论】:

    标签: javascript arrays json variables local-storage


    【解决方案1】:
    function myFunction() {
                var storedArray = JSON.parse(localStorage.getItem("storedArray"));
    
                if (storedArray === null) {
                    storedArray = [];
                }
    
                var obj = {
                    email: "test@email.com",
                    age: 15,
                    name: "username"
                };
    
                storedArray.push(obj);
                localStorage.setItem("storedArray", JSON.stringify(storedArray));
            }
    

    将更新后的 storedArray 设置为本地存储中的相同键会覆盖旧值。试试这段代码,你会看到更新后的数组。

    信息:本地存储数据存储为键值。

    Trott 是对的,你错过了解析你保存的 json。

    JSON.stringify 将您的 json 对象/数组转换为字符串。为了取回相同的数据,您必须对其进行解析。

    【讨论】:

    • 重复键值对推送到localStorage如何处理?
    【解决方案2】:

    如果您使用JSON.stringify() 将对象转换为JSON 字符串表示,那么您可以使用JSON.parse() 将JSON 表示转换回对象。

    【讨论】:

    • 您能否编辑答案以显示它是如何工作的,我做 js 的时间不长。
    猜你喜欢
    • 2012-09-07
    • 2018-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-20
    • 2013-05-05
    • 2016-04-11
    • 1970-01-01
    相关资源
    最近更新 更多