在重新加载时保存数组值并将其检索回来

时间:2013-07-15 15:38:06

标签: javascript jquery local-storage

我每分钟都会将一些随机值推送到数组中。

在重新加载时,我想要检索这个被推送的内容并且每分钟继续推送一些随机数据?

我正在使用本地存储空间。

mycode的 - :

localStorage.setItem("test",Myarray.push(JSON.stringify(data)));
var test2 = localStorage.getItem("test");
test = JSON.parse(test2); //var test is now re-loaded!
console.log(test);

这不起作用。

3 个答案:

答案 0 :(得分:2)

将数据推送到数组,然后将其作为JSON存储在localStorage中:

// Set
Myarray.push(data);
localStorage.setItem("test", JSON.stringify(Myarray));

在获取数据时解析JSON(将其放在脚本的顶部或onload方法中):

// Get
if (localStorage.getItem("test")) {
    Myarray = JSON.parse(localStorage.getItem("test"));
} else {
    // No data, start with an empty array
    Myarray = [];
}
console.log(Myarray);

答案 1 :(得分:0)

本地存储仅适用于字符串。此外,push返回数组的新长度,因此您发布的代码无法按预期工作。试试这个:

Myarray.push(data);
localStorage.setItem("test", JSON.stringify(Myarray));

答案 2 :(得分:0)

问题是您将返回值从.push()存储到本地存储(这是数组的长度),而不是实际数据。

您应该根据需要推送到数组,然后对数组进行字符串化并存储。

var Myarray = [];
Myarray.push(....);

localStorage.setItem("test", JSON.stringify(Myarray);