You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

拼接Session Storage解析数据时,如何自动移除空值避免报错?

解决Session Storage解析数据合并时的空值问题

你可以通过批量处理+过滤空值的方式解决这个问题,不用逐个检查每个变量,具体实现如下:

优化后的代码

// 把需要读取的key统一放到数组里,避免重复代码
const dataKeys = ['data1', 'data2', 'data3', 'data4', 'data5'];
// 批量解析sessionStorage中的数据
const parsedDataList = dataKeys.map(key => JSON.parse(sessionStorage.getItem(key)));

// 过滤掉null/undefined这类空值,再合并所有有效数组
const ArrayConcatSession = parsedDataList.filter(Boolean).flat();

代码说明

  1. 批量解析:将所有需要读取的key存入数组,用map循环解析,避免重复写五次JSON.parse(sessionStorage.getItem()),更简洁易维护。
  2. 过滤空值:filter(Boolean)会自动剔除null、undefined这类假值——当sessionStorage中没有对应key时,getItem返回null,JSON.parse后还是null,这类值会被过滤掉,避免展开时报错。
  3. 合并数组:flat()方法会将过滤后的数组列表展开合并成一个一维数组,效果和你原来的[...d1, ...d2,...]一致。

如果你的场景中需要过滤空数组(比如解析后是[]也想移除),可以把过滤条件改成:

parsedDataList.filter(item => item?.length > 0)

这样就能确保只有非空的有效数组才会被合并。

内容的提问来源于stack exchange,提问作者Strywyr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 06:35:08