我目前正在尝试将数组存储到sessionStorage
中,然后从sessionStorage
检索数据。然后,将sessionStorage
数据存储回数组中。
var testArray = ["Shirt", "Bottom", "Shoes"];
window.sessionStorage.setItem("items", JSON.stringify(testArray));
var storedArray = JSON.parse('[' + sessionStorage.getItem("items") + ']');
var i;
for (i = 0; i < storedArray.length; i++) {
alert(storedArray[i]);
}
我在这里做错了吗?
答案 0 :(得分:3)
它已经存储为数组,您不需要括号。你正在做的是将原始数组放在一个新数组中。
试试这个:
var testArray = ["Shirt", "Bottom", "Shoes"];
window.sessionStorage.setItem("items", JSON.stringify(testArray));
var storedArray = JSON.parse(sessionStorage.getItem("items"));//no brackets
var i;
for (i = 0; i < storedArray.length; i++) {
alert(storedArray[i]);
}
答案 1 :(得分:0)
您不需要使用[]
包装数组。 sessionStorage.getItem("items")
返回JSON字符串化数组,您使用另一个数组包装数组。您的问题是alert
函数将数组转换为字符串(就像通过调用Array.prototype.join
方法一样加入数组元素),这是因为alert
只能显示字符串。这可能会让你觉得没有数组。使用console.log
进行调试。