localStorage:数组存储困境
使用 localStorage 存储变量时,注意其局限性至关重要。与常规 JavaScript 不同,localStorage 只能处理字符串。当尝试存储数组等复杂数据结构时,这提出了挑战。
在原始代码中,您尝试将数组直接分配给 localStorage。但是,这种方法将会失败,因为 localStorage 需要一个字符串值。要解决这个问题,我们需要将数组转换为字符串。
JSON 来救援
JSON(JavaScript 对象表示法)是一种数据交换格式,允许我们将对象和数组表示为字符串。通过使用 JSON.stringify(),我们可以将名称数组转换为 JSON 字符串。
var names = []; names[0] = prompt("New member name?"); localStorage.setItem("names", JSON.stringify(names));
此代码将成功将名称数组作为字符串存储在 localStorage 中。
检索和使用
从localStorage检索数组时,我们需要转换存储的JSON字符串使用 JSON.parse() 返回到数组。
var storedNames = JSON.parse(localStorage.getItem("names"));
现在,storedNames 将包含存储在 localStorage 中的原始数组。
或者,您还可以使用直接属性访问设置和检索 JSON 字符串,绕过 setItem() 和 getItem() 方法:
localStorage.names = JSON.stringify(names); var storedNames = JSON.parse(localStorage.names);
此方法提供了更多简洁的语法,但需要注意的是,旧版浏览器可能不支持它。
以上是如何在 localStorage 中存储和检索 JavaScript 数组?的详细内容。更多信息请关注PHP中文网其他相关文章!