将 sessionStorage 放入数组并打印数组中的所有值

sessionStorage into array and print all values in the array

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

我是不是做错了什么?

它已经存储为一个数组,你不需要括号。您所做的是将原始数组放入新数组中。

试试这个:

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/

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