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 相关文章推荐
Javascript 垃圾收集机制介绍理解
May 14 Javascript
使用JS取得焦点(focus)元素代码
Mar 22 Javascript
jquery.gridrotator实现响应式图片展示画廊效果
Jun 23 Javascript
特殊日期提示功能的实现方法
Jun 16 Javascript
Vue 短信验证码组件开发详解
Feb 14 Javascript
利用Javascript裁剪图片并存储的简单实现
Mar 13 Javascript
解决vue.js在编写过程中出现空格不规范报错的问题
Sep 20 Javascript
用jquery获取select标签中选中的option值及文本的示例
Jan 25 jQuery
Vue组件和Route的生命周期实例详解
Feb 10 Javascript
Rollup处理并打包JS文件项目实例代码
May 31 Javascript
JavaScript防止全局变量污染的方法总结
Aug 02 Javascript
解决Antd Table组件表头不对齐的问题
Oct 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 表单数据的获取代码
2009/03/10 PHP
Jquery 获得服务器控件值的方法小结
2010/05/11 Javascript
js 未结束的字符串常量错误解决方法
2010/06/13 Javascript
一个不错的js html页面倒计时可精确到秒
2014/10/22 Javascript
vue.js入门教程之基础语法小结
2016/09/01 Javascript
json数据处理及数据绑定
2017/01/25 Javascript
Bootstrap表格制作代码
2017/03/17 Javascript
详解angularJs中关于ng-class的三种使用方式说明
2017/06/02 Javascript
React Native中导航组件react-navigation跨tab路由处理详解
2017/10/31 Javascript
JS前端广告拦截实现原理解析
2020/02/17 Javascript
python处理圆角图片、圆形图片的例子
2014/04/25 Python
python使用锁访问共享变量实例解析
2018/02/08 Python
浅谈Python中的私有变量
2018/02/28 Python
python 实现提取某个索引中某个时间段的数据方法
2019/02/01 Python
详解Python中is和==的区别
2019/03/21 Python
python挖矿算力测试程序详解
2019/07/03 Python
处理Selenium3+python3定位鼠标悬停才显示的元素
2019/07/31 Python
python打印n位数“水仙花数”(实例代码)
2019/12/25 Python
Python爬虫抓取指定网页图片代码实例
2020/07/24 Python
Python制作一个仿QQ办公版的图形登录界面
2020/09/22 Python
python 发送get请求接口详解
2020/11/17 Python
python中uuid模块实例浅析
2020/12/29 Python
HTML5边玩边学(2)基础绘图实现方法
2010/09/21 HTML / CSS
html5实现微信打飞机游戏
2014/03/27 HTML / CSS
阿联酋最好的手机、电子产品和家用电器网上商店:Eros Digital Home
2020/08/09 全球购物
上课看小说检讨书
2014/02/22 职场文书
《美丽的丹顶鹤》教学反思
2014/04/22 职场文书
党的群众路线教育实践活动实施方案
2014/10/31 职场文书
门面房租房协议书
2014/12/01 职场文书
2016年教师新年寄语
2015/08/18 职场文书
观看《筑梦中国》纪录片心得体会
2016/01/18 职场文书
《小小的船》教学反思
2016/02/18 职场文书
2016年小学端午节活动总结
2016/04/01 职场文书
pygame面向对象的飞行小鸟实现(Flappy bird)
2021/04/01 Python
python批量创建变量并赋值操作
2021/06/03 Python
Python实现对齐打印 format函数的用法
2022/04/28 Python