sessionStorage into array并打印数组中的所有值

时间:2016-06-28 18:02:25

标签: javascript arrays json session-storage

我目前正在尝试将数组存储到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]);
}

我在这里做错了吗?

2 个答案:

答案 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]);
}

https://jsfiddle.net/517x5rcg/

答案 1 :(得分:0)

您不需要使用[]包装数组。 sessionStorage.getItem("items")返回JSON字符串化数组,您使用另一个数组包装数组。您的问题是alert函数将数组转换为字符串(就像通过调用Array.prototype.join方法一样加入数组元素),这是因为alert只能显示字符串。这可能会让你觉得没有数组。使用console.log进行调试。