开发者问题收集

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

2015-07-14
289

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

我做了什么:

if (localStorage.myArray) {
    localStorage.myArray.push("Green");
} else {
    localStorage.myArray = ["Red", "Blue"];
}

这会返回一个错误:

Uncaught TypeError: localStorage.myArray.push is not a function

我知道本地存储项始终是字符串,但我不知道这在数组中如何工作。

2个回答

由于 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"]);
}
Dhiraj
2015-07-14
if (localStorage.myArray) {
    var myArray = localStorage.myArray.split(',');
    myArray.push("Green");
    localStorage.myArray = myArray;
} else {
   localStorage.myArray = ["Red", "Blue"];
}
Darx
2015-07-14