当前位置: 首页 > wzjs >正文

昆山便宜做网站正规的计算机培训机构

昆山便宜做网站,正规的计算机培训机构,做网站设计难吗,萧山建设局网站首页直接使用 Map 会遇到的问题及解决方案 直接使用 Map 会导致数据丢失,因为 JSON.stringify 无法序列化 Map。以下是详细分析及解决方法: 问题复现 // 示例代码 const myMap new Map(); myMap.set(user1, { name: Alice }); myMap.set(user2, { name: B…

直接使用 Map 会遇到的问题及解决方案

直接使用 Map 会导致数据丢失,因为 JSON.stringify 无法序列化 Map。以下是详细分析及解决方法:


  1. 问题复现
// 示例代码
const myMap = new Map();
myMap.set('user1', { name: 'Alice' });
myMap.set('user2', { name: 'Bob' });// 保存 Map
utilts.setValuePlan('myMap', myMap); // 实际存储的是空对象 `{}`// 读取 Map
const loadedMap = utilts.getValuePlan('myMap'); 
console.log(loadedMap); // 输出 `{}`,数据丢失!

  1. 根本原因
    JSON.stringify 不支持 MapMap 对象会被转换为空对象 {},导致数据丢失。

JSON.parse 无法还原 Map:即使手动存储 Map 的内容,读取时也无法自动恢复为 Map


解决方案(不修改存储函数)

方法 1:存储时手动转换 Map 为数组
在调用 setValuePlan 前将 Map 转换为数组,读取时再转回 Map

示例代码

// 保存 Map
const myMap = new Map();
myMap.set('user1', { name: 'Alice' });
myMap.set('user2', { name: 'Bob' });// 转换为数组 [[key1, value1], [key2, value2]]
const mapArray = Array.from(myMap.entries());
utilts.setValuePlan('myMap', mapArray); // ✅ 正确存储// 读取时转回 Map
const loadedArray = utilts.getValuePlan('myMap') || [];
const loadedMap = new Map(loadedArray); // ✅ 恢复为 Map

方法 2:封装工具函数
创建 Map 专用的存取函数,隐藏转换逻辑。

示例代码

// 保存 Map
export function setMapValue(key, map) {const mapArray = Array.from(map.entries());utilts.setValuePlan(key, mapArray);
}// 读取 Map
export function getMapValue(key) {const mapArray = utilts.getValuePlan(key) || [];return new Map(mapArray);
}// 使用示例
const myMap = new Map();
myMap.set('user1', { name: 'Alice' });
setMapValue('myMap', myMap); // ✅ 存储const loadedMap = getMapValue('myMap'); // ✅ 恢复

关键总结

步骤操作代码示例
存储转换 Map 为数组utilts.setValuePlan(key, Array.from(map.entries()))
读取转换数组为 Mapnew Map(utilts.getValuePlan(key))

注意事项

  1. 数据兼容性:确保旧数据是数组格式(如 [[key1, value1], [key2, value2]])。
  2. 空值处理:读取时处理可能的 null 或无效数据:
    const mapArray = utilts.getValuePlan(key) || [];
    
  3. 嵌套对象:如果 Map 的值包含不可序列化对象(如 Date),需额外处理。

通过手动转换 Map 和数组,可以在不修改现有存储函数的情况下安全使用 Map

http://www.dtcms.com/wzjs/64354.html

相关文章:

  • 网站建设维护教程b站在线观看
  • 祥云平台技术支持双语网站seo引擎优化教程
  • 建站兔软件常见问题软文范例
  • 如何给网站做右侧导航seo运营学校
  • 石家庄正规制作网站公司谷歌浏览器网页
  • 网站伪静态设置seo网站关键词优化快速官网
  • dw做网站常用标签网络营销的基本职能
  • 网站建设费用低设计好seo关键词分类
  • 深圳狮子会网站十大搜索引擎神器
  • 重庆观音桥谷歌sem和seo区别
  • 怎样批量做全国网站模板网站建站哪家好
  • 网站怎么做认证今日头条热榜
  • 哪里能给人做网站关键词优化搜索引擎
  • 河南省住建委官方网站制作公司网页多少钱
  • 合肥做网站开发多少钱微信营销推广公司
  • 动态网站开发技术指标新冠病毒最新消息
  • 佛山营销网站建设推广最近的疫情情况最新消息
  • 通达oa 做网站网站可以自己做吗
  • asp汽车驾驶培训学校网站源码百度公司的业务范围
  • 商鼎营销型网站建设网站推广优化是什么意思
  • 如何对网站做压力测试百度400电话
  • 建网站用自己的主机做服务器关键词优化技巧
  • 徐水住房建设局网站北京网站设计公司
  • 贵州网站建设公司防城港网站seo
  • 外贸网站怎么做会吸引眼球网络推广是什么
  • 怎么查看网站备案百度引流推广怎么收费
  • 广安做网站公司代运营电商公司排行榜
  • 前方网络网站建设合同友情连接
  • 用vs2013做网站案例搜索seo
  • 网站5建设需要学什么时候开始商丘网络推广公司