-4

我每分钟将一些随机值推入一个数组。

重新加载时,我想取回这个推送的内容并每分钟继续推送一些随机数据?

我正在使用本地存储。

我的代码——:

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);

这是行不通的。

4

3 回答 3

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);
于 2013-07-15T15:41:38.577 回答
0

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

Myarray.push(data);
localStorage.setItem("test", JSON.stringify(Myarray));
于 2013-07-15T15:41:20.663 回答
0

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

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

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

localStorage.setItem("test", JSON.stringify(Myarray);
于 2013-07-15T15:42:38.130 回答