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

如何无需指定key,通过单次调用获取LocalStorage全部数据?

当然可以一次性获取LocalStorage的全部数据!

完全不用每次都指定特定key来调用getItem(),其实有好几种简单的方法能直接拿到所有存储的内容,之后再筛选带特定前缀的项就很轻松了。

方法一:利用LocalStorage的原生遍历方法

LocalStorage本身提供了length属性和key(index)方法,我们可以通过索引遍历所有key,再逐个取出对应的值:

function getAllLocalStorage() {
  const storageData = {};
  // 遍历所有存储项的索引
  for (let i = 0; i < localStorage.length; i++) {
    const key = localStorage.key(i);
    storageData[key] = localStorage.getItem(key);
  }
  return storageData;
}

// 调用函数拿到全部数据
const allData = getAllLocalStorage();

方法二:更简洁的对象转换写法

因为LocalStorage是一个类数组的对象,我们可以直接把它转成普通JavaScript对象,或者用Object.keys()来遍历:

// 快速转成普通对象
const allData = Object.assign({}, localStorage);

// 或者用forEach遍历key
const allData = {};
Object.keys(localStorage).forEach(key => {
  allData[key] = localStorage[key];
});

筛选带特定前缀的项

拿到全部数据后,要筛选出带特定前缀的项就很简单了,用startsWith()方法判断key即可:

const targetPrefix = "your_prefix_"; // 替换成你要找的前缀
const matchedItems = {};

for (const key in allData) {
  // 这里可以加个hasOwnProperty确保只遍历自身属性(可选,现代浏览器基本不需要)
  if (allData.hasOwnProperty(key) && key.startsWith(targetPrefix)) {
    matchedItems[key] = allData[key];
  }
}

console.log("符合前缀的存储项:", matchedItems);

小提示

  • LocalStorage里存储的所有值都是字符串类型,如果之前存的是JSON对象,记得用JSON.parse()把值转回来哦。
  • 这种遍历方法是同步的,不会有异步问题,直接在页面加载后调用就行。

这样就能轻松实现你的需求啦,批量获取+前缀筛选一次搞定~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 12:16:51