JS如何将localStorage中存储的数组,取出指定的key的value

clipboard.png

如上图,是在localStorage中存储的形式

请问如何在JS中取出指定的值,如直接取出keywords或者brand_id的值?谢谢

阅读 4.7k
3 个回答

首先,你需要明白的是,存储在localStorage里面的数据都必须是基本类型的数据,如果是数组,则需要进行Json.stringify的转换,就拿你的这个列子来说:

let datas = [{"keywords":"123"},{"brand_id":"3"}]

存入localStorage:

localStorage.setItem('mData',JSON.stringify(datas));

取出:

let data = JSON.parse(localStorage.getItem('mData'))

这时候的data是个数组,你可以封装一个函数,如:

getValueByKey(data,key){
    if(data.length>0){
    data.forEach((item)=>{
      Object.keys(item).forEach(function(mKey){
         if(key ===mKey){
             return item[mKey]
         }   
        });
    }
     )
    }
 }

你这个格式定义的就不对, 这种数据要设计好格式再存, 而不是格式错了再弥补
现在你只能拿出来遍历取值了, 性能差

https://segmentfault.com/a/11... 这个基本能满足要求。不过取值的时候稍微有点问题。我用时加了下前缀,如果是string,就返回string。如果是其他的,就使用JSON.parse。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题