首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用检索指定的会话存储项清除会话存储数据

使用检索指定的会话存储项清除会话存储数据
EN

Stack Overflow用户
提问于 2020-12-24 15:40:27
回答 2查看 708关注 0票数 1

我必须通过检索特定的项目来清除会话。

除了一个购物车项目之外,还有许多会话项需要清除。

现在,我这样做是为了检索会话存储中的购物车值。

代码语言:javascript
复制
var cart = window.sessionStorage.getItem('cart');
window.sessionStorage.clear();
window.sessionStorage.setItem('cart', cart);

由于它工作正常,现在我必须检索7个不同的项(我的会话中有超过40个会话项),

有什么好办法来实现同样的目标吗?

注意:我只检索像“购物车”、“用户”、“logTime”这样的项目键,但没有清除项目键。

EN

回答 2

Stack Overflow用户

发布于 2020-12-24 15:45:26

您可以创建要删除的键数组。

代码语言:javascript
复制
['key1', 'key2'].forEach((key) => {
  window.sessionStorage.removeItem(key)
});

如果您的列表太大,您可以使用所有键( const storageKeys =‘key2 1’、‘key2 2’等)和storageKeys.forEach(.)创建单独的变量。

根据最后评论编辑

代码语言:javascript
复制
const savedData = []; 
['key1', 'key2'].forEach((key) => { 
  savedData.push([key, window.sessionStorage.getItem(key)]); 
}); 
window.sessionStorage.clear(); 
savedData.forEach(([key, value]) => window.sessionStorage.setItem(key, value));
票数 1
EN

Stack Overflow用户

发布于 2020-12-24 15:48:46

您可以创建一个函数来检索所需的会话存储项,并且只删除该特定项,而不删除整个存储:

代码语言:javascript
复制
function getStorageItem(itemKey) {
  let item = window.sessionStorage.getItem(itemKey);
  window.sessionStorage.removeItem(itemKey);
  return item;
}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65440415

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档