阵列推送时出现本地存储错误

rei*_*ark 1 javascript arrays html5 local-storage

我正在使用本地存储进行一些测试.在我对数组的测试中,我被困在数组部分(推).

我做了什么:

if (localStorage.myArray) {
    localStorage.myArray.push("Green");
} else {
    localStorage.myArray = ["Red", "Blue"];
}
Run Code Online (Sandbox Code Playgroud)

这会返回一个错误:

Uncaught TypeError: localStorage.myArray.push is not a function
Run Code Online (Sandbox Code Playgroud)

我知道localstorage itens总是字符串,但我不知道它是如何在数组中工作的.

Dhi*_*raj 5

由于localStorage只接受字符串,因此您必须使用JSON.stringify将数组转换为JSON字符串.将JSON字符串解析为数组,同时对"数组"执行进一步操作.像这样的东西

if (localStorage.myArray) {
    var myArray = JSON.parse(localStorage.myArray);
    myArray.push("Green");
    localStorage.myArray = JSON.stringify(myArray);
} else {
    localStorage.myArray = JSON.stringify(["Red", "Blue"]);
}
Run Code Online (Sandbox Code Playgroud)