将字符串从本地存储转换回数组

Converting string back to an array from local storage

我可能离我很远,但谁能告诉我这是否可行。

 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 可以做什么吗?

谢谢。

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

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 object/array 转换为字符串。为了取回相同的数据,您必须对其进行解析。