在Localstorage中保存并获取阵列?

时间:2018-07-18 13:39:20

标签: javascript local-storage

我试图将一个数组保存到本地存储中,然后再获取它。

localStorage.setItem("savedquestionslist", questions);
console.log(localStorage.getItem(savedquestionslist));

变量“ questions”是一个数组。

但是我收到此错误:

  

ReferenceError:未定义保存的问题列表。

即使这样做,我仍然会收到错误消息:

localStorage.setItem("savedquestionslist", "test");
console.log(localStorage.getItem(savedquestionslist));

有人知道这个问题是什么吗?谢谢

3 个答案:

答案 0 :(得分:0)

savedquestionslist必须是字符串。

console.log(localStorage.getItem('savedquestionslist'));

答案 1 :(得分:0)

问题出在您使用getItem的语法中。

它接受一个字符串作为参数。您正在传递变量,并且错误表示未定义变量savedquestionslist

将代码更改为:

localStorage.setItem("savedquestionslist", questions);
console.log(localStorage.getItem("savedquestionslist"));

一个例子是

var questions = ['firstQuestion', 'secondQuestion', 'thirdQuestion'];

localStorage.setItem("savedquestionslist", questions);
console.log(localStorage.getItem("savedquestionslist"));

答案 2 :(得分:0)

您遇到的错误是因为您忘记了getItem调用中的引号:

console.log(localStorage.getItem("savedquestionslist"));
// ------------------------------^------------------^

或者您可以使用文字访问权限:

console.log(localStorage.savedquestionslist);

但是在两种情况下,由于本地存储仅存储字符串,因此我将使用JSON,否则将无法正确保存/检索您的数组:

localStorage.setItem("savedquestionslist", JSON.stringify(questions));
console.log(JSON.parse(localStorage.getItem("savedquestionslist")) || []);

|| []用于您从未设置过的项目,它提供了默认的空数组。)