首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从本地存储角度8获取对象

从本地存储角度8获取对象
EN

Stack Overflow用户
提问于 2020-11-18 06:44:17
回答 2查看 2.5K关注 0票数 0

我有一个本地存储器,它存储一些数据。我正在尝试使用localStorage.getItem('id');在组件中获取数据,但它是未定义的。问题是,localStorage正在以一种奇怪的格式存储id。它像abcabcabc.id一样存储,现在localStorage中有多个这样的参数,对于每个登录的用户,字符串abcabcabc都会发生变化。我如何才能得到id值。我可以比较字符串或其他东西来获得值吗?比如,如果它包含字符串,.id只读取该值?如果是,你能解释如何实现这一目标吗?

地方储存:

代码语言:javascript
复制
abcabcabc.username.id = sdfsdfsdfs
abcabcabc.username.refreshToken = sdfsdfs
abcabcabc.username.accessToken = ertsdffdg
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-18 08:34:41

由于您不知道存储在localStorage中的确切密钥,所以请获取所有密钥,然后迭代。接下来,匹配您所知道的i.id键的一部分,如下所示:

代码语言:javascript
复制
// fetch all key-value pairs from local storage
const localStorageKeys = { ...localStorage };

// iterate over them
for (const index in localStorageKeys) {

  // see if key contains id
  if (index.includes('id')) {

    // fetch value for corresponding key 
    console.log(localStorageKeys[index]);

  }
}
票数 1
EN

Stack Overflow用户

发布于 2020-11-18 08:11:01

localStorage将数据设置为键值对的映射,因此:

代码语言:javascript
复制
var id = {key:"id", value:"sdfsdfsdfs"}
//JSON.stringify converts the JavaScript object id into a string 
localStorage.setItem('id', JSON.stringify(id));

现在您可以通过以下方法获得数据:

代码语言:javascript
复制
var getTheId = localStorage.getItem('id');
//you can use JSON.parse() if you need to print it
console.log('getTheId: ', JSON.parse(getTheId));

通常是这样做的,但由于我不知道您是如何设置数据的,所以您可以通过以下方法获得数据:

代码语言:javascript
复制
var x = localStorage.getItem(id);//normally getting your id
//parse it
var st = JSON.parse(x);
var ids = [];
while(st.includes(id)){
//this is to only get the abcabacabc
var newId = st.substring(0,9);
ids.push(newId);
}
console.log(ids);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64888291

复制
相关文章

相似问题

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