JS localStorage存储对象,sessionStorage存储数组对象操作示例


Posted in Javascript onFebruary 15, 2020

本文实例讲述了JS localStorage存储对象,sessionStorage存储数组对象操作。分享给大家供大家参考,具体如下:

一、前言

最近在用angular做商城购物车的功能模块,因为angular的watch监听,数据只要发生变化就能很方便的自动渲染页面。但随即出现的问题是,之前用户操作的样式都会被重置掉。

例如我勾选了几个商品准备结算,又修改了商品数量,这时候发起了请求,页面数据被渲染,打钩的商品全被恢复未选中。

想着将所有选中商品的独有Id存入数组,利用localStorage存储,每次刷新都取到存储的数组,将数组对应Id的商品再次勾上。结果出现了下面的问题:

var a = [1,2,3];
window.localStorage.setItem('key',a);
var b = window.localStorage.getItem('key');
console.log(b,typeof b);//1,2,3  string

很明显,数组存进去直接被强转为了字符串类型,这明显不是我想要的,查了下,可以利用json.stringify与JSON.parse的转换达到目的。

二、存储数组

json.stringify可以将对象转换为 JSON 字符串

JSON.parse可以将 JSON 字符串转换为对象

那我们存的时候先将数组转成JSON字符串,取出来再转成数组就可以了,实现如下。

function storageObj(obj) {
  var checkedIdStr = JSON.stringify(obj);
  sessionStorage.setItem("key", checkedIdStr);
};
var arrBefor = [1,2,3];
storageObj(arrBefor);
var arrAfter = JSON.parse(sessionStorage.getItem("key"));
console.log(arrAfter,typeof arrAfter);//[1, 2, 3] "object"

三、存储对象

function storageObj(obj) {
  var checkedIdStr = JSON.stringify(obj);
  sessionStorage.setItem("key", checkedIdStr);
};
var objBefor = {
  a:1,
  b:2
};
storageObj(objBefor);
var objAfter = JSON.parse(sessionStorage.getItem("key"));
console.log(objAfter,typeof objAfter);//{a: 1, b: 2} "object"

利用JSON转换值达到存储的的方式非常好用,除此之外JSON的方法还能用于深拷贝

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.3water.com/code/HtmlJsRun测试上述代码运行效果。

更多关于JavaScript相关内容可查看本站专题:《JavaScript操作DOM技巧总结》、《JavaScript页面元素操作技巧总结》、《JavaScript事件相关操作与技巧大全》、《JavaScript查找算法技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》及《JavaScript错误与调试技巧总结》

希望本文所述对大家JavaScript程序设计有所帮助。

Javascript 相关文章推荐
基于jQuery+HttpHandler实现图片裁剪效果代码(适用于论坛, SNS)
Sep 02 Javascript
JQuery页面的表格数据的增加与分页的实现
Dec 10 Javascript
JavaScript通过join函数连接数组里所有元素的方法
Mar 20 Javascript
JavaScript通过事件代理高亮显示表格行的方法
May 27 Javascript
微信小程序 数据封装,参数传值等经验分享
Jan 09 Javascript
JS滚动到指定位置导航栏固定顶部
Jul 03 Javascript
详解基于 axios 的 Vue 项目 http 请求优化
Sep 04 Javascript
Node.js Buffer用法解读
May 18 Javascript
微信小程序实现下拉刷新动画
Jun 21 Javascript
茶余饭后聊聊Vue3.0响应式数据那些事儿
Oct 30 Javascript
如何在面试中手写出javascript节流和防抖函数
Oct 22 Javascript
JavaScript实现滚动加载更多
Dec 27 Javascript
ES6 proxy和reflect的使用方法与应用实例分析
Feb 15 #Javascript
js表达式与运算符简单操作示例
Feb 15 #Javascript
ES6 class类链式继承,实例化及react super(props)原理详解
Feb 15 #Javascript
ES6 Iterator遍历器原理,应用场景及相关常用知识拓展详解
Feb 15 #Javascript
es6 super关键字的理解与应用实例分析
Feb 15 #Javascript
es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析
Feb 15 #Javascript
Vue父子传递实例讲解
Feb 14 #Javascript
You might like
php导入csv文件碰到乱码问题的解决方法
2014/02/10 PHP
PHP的拦截器实例分析
2014/11/03 PHP
PHP标准库(PHP SPL)详解
2019/03/16 PHP
JS JavaScript获取Url参数,src属性参数
2021/03/09 Javascript
javascript判断单选框或复选框是否选中方法集锦
2007/04/04 Javascript
jquery判断单个复选框是否被选中的代码
2009/09/03 Javascript
js cookies实现简单统计访问次数
2009/11/24 Javascript
jquery高效反选具体实现
2013/05/05 Javascript
javascript跟随滚动效果插件代码(javascript Follow Plugin)
2013/08/03 Javascript
js获取元素的外链样式的简单实现方法
2016/06/06 Javascript
javascript使用 concat 方法对数组进行合并的方法
2016/09/08 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
2016/12/01 Javascript
js实现3D图片展示效果
2017/03/09 Javascript
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
BootStrap Validator 根据条件在JS中添加或移除校验操作
2017/10/12 Javascript
bootstrap日期插件daterangepicker使用详解
2017/10/19 Javascript
JS实现的按钮点击颜色切换功能示例
2017/10/19 Javascript
Angular实现可删除并计算总金额的购物车功能示例
2017/12/26 Javascript
浅析node.js的模块加载机制
2018/05/25 Javascript
一次Webpack配置文件的分离实战记录
2018/11/30 Javascript
详解JavaScript中关于this指向的4种情况
2019/04/18 Javascript
Python中函数的参数传递与可变长参数介绍
2015/06/30 Python
Python基础教程之异常详解
2019/01/10 Python
python区块及区块链的开发详解
2019/07/03 Python
Python 操作 ElasticSearch的完整代码
2019/08/04 Python
美国女性运动零售品牌:Lady Foot Locker
2017/05/12 全球购物
新奥尔良珠宝:Mignon Faget
2020/11/23 全球购物
Otiumberg官网:英国半精致珠宝品牌
2021/01/16 全球购物
医院后勤自我鉴定
2013/10/13 职场文书
医药专业推荐信
2013/11/15 职场文书
2014年毕业演讲稿范文
2014/05/13 职场文书
安全生产工作汇报
2014/10/28 职场文书
2014年幼儿园德育工作总结
2014/12/17 职场文书
英文道歉信
2015/01/20 职场文书
怀孕辞职信怎么写
2015/02/28 职场文书
vue特效之翻牌动画
2022/04/20 Vue.js