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