如何将JS对象完整存入Local Storage并读取替换原对象?
实现文字游戏存档/读档功能方案
1. 先修正房间数据对象的语法错误
你的示例代码存在JS语法问题,对象属性需用冒号(:)定义,且同级属性/对象间需加逗号(,),修正后如下:
var rooms = { room1: { item1: "one", item2: "two" }, room2: { item1: "one", item2: "two" } };
2. 实现存档功能
Local Storage仅支持存储字符串,需用JSON.stringify()将JS对象转为JSON字符串后存入:
// 存档函数 function saveGame() { const savedRooms = JSON.stringify(rooms); localStorage.setItem("textGameRooms", savedRooms); alert("存档成功!"); }
3. 实现读档功能
读取时用JSON.parse()将存储的JSON字符串转回JS对象,替换当前的rooms:
// 读档函数 function loadGame() { const savedRooms = localStorage.getItem("textGameRooms"); if (savedRooms) { rooms = JSON.parse(savedRooms); alert("读档成功!"); } else { alert("暂无存档数据!"); } }
4. 绑定触发操作
通过用户操作(比如按钮点击)触发存档/读档,示例HTML代码:
<button onclick="saveGame()">保存游戏</button> <button onclick="loadGame()">加载游戏</button>
注意事项
- Local Storage数据是持久化的,除非用户手动清除缓存或调用
localStorage.removeItem("textGameRooms")删除存档 - 确保
rooms对象仅包含可序列化数据(字符串、数字、布尔值、普通对象、数组),函数或循环引用会导致JSON.stringify()失败
内容的提问来源于stack exchange,提问作者Cerric Liadon
相关产品推荐
相关产品推荐

