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 火狐(firefox)不显示本地图片问题解决
Jul 05 Javascript
js或css文件后面跟参数的原因说明
Jan 09 Javascript
jQuery 无刷新分页实例代码
Nov 12 Javascript
javascript中setInterval的用法
Jul 19 Javascript
jQuery插件easyUI实现通过JS显示Dialog的方法
Sep 16 Javascript
基于jQuery和Bootstrap框架实现仿知乎前端动态列表效果
Nov 09 Javascript
js实现密码强度检验
Jan 15 Javascript
详解angularJs指令的3种绑定策略
Apr 13 Javascript
微信小程序 跳转方式总结
Apr 20 Javascript
Vue.js实现一个todo-list的上移下移删除功能
Jun 26 Javascript
浅谈在node.js进入文件目录的问题
May 13 Javascript
Vue项目环境搭建详细总结
Sep 26 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实现MySQL更新记录的代码
2008/06/07 PHP
PHP实现设计模式中的抽象工厂模式详解
2014/10/11 PHP
PHP读取大文件的多种方法介绍
2016/04/04 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
自制PHP框架之设计模式
2017/05/07 PHP
laravel利用中间件做防非法登录和权限控制示例
2019/10/21 PHP
一段非常简单的让图片自动切换js代码
2006/11/10 Javascript
js 遍历对象的属性的代码
2011/12/29 Javascript
JS模拟自动点击的简单实例
2013/08/08 Javascript
JS实现的最简Table选项卡效果
2015/10/14 Javascript
基于JavaScript获取鼠标位置的各种方法
2015/12/16 Javascript
基于JavaScript实现文字超出部分隐藏
2016/02/29 Javascript
原生js封装二级城市下拉列表的实现代码
2016/06/16 Javascript
javascript中sort排序实例详解
2016/07/24 Javascript
Vue2.0利用 v-model 实现组件props双向绑定的优美解决方案
2017/03/13 Javascript
使用jQuery监听扫码枪输入并禁止手动输入的实现方法(推荐)
2017/03/21 jQuery
JavaScript数据结构之二叉树的查找算法示例
2017/04/13 Javascript
Jquery+Ajax+xml实现中国地区选择三级联动菜单效果(推荐)
2017/06/09 jQuery
Vue-router 中hash模式和history模式的区别
2018/07/24 Javascript
使用jquery的cookie实现登录页记住用户名和密码的方法
2019/03/13 jQuery
layui radio点击事件实现input显示和隐藏的例子
2019/09/02 Javascript
Vue+Bootstrap实现简易学生管理系统
2021/02/09 Vue.js
[02:57]2014DOTA2国际邀请赛 选手辛苦解说更辛苦
2014/07/10 DOTA
Bottle框架中的装饰器类和描述符应用详解
2017/10/28 Python
CSS3中31种选择器使用方法教程
2013/12/05 HTML / CSS
美国老牌主机服务商:iPage
2016/07/22 全球购物
碧欧泉美国官网:Biotherm美国
2016/08/31 全球购物
英国马匹装备和马术用品购物网站:Equine Superstore
2019/03/03 全球购物
俄罗斯美容和健康网上商店:Созвездие Красоты
2019/07/23 全球购物
集团公司人力资源部岗位职责
2014/01/03 职场文书
教学个人的自我评价分享
2014/02/16 职场文书
学习优秀党员杨宗兴先进事迹材料思想汇报
2014/09/14 职场文书
婚前财产协议书范本
2014/10/19 职场文书
Python的三个重要函数详解
2022/01/18 Python
一次SQL如何查重及去重的实战记录
2022/03/13 MySQL
python中urllib包的网络请求教程
2022/04/19 Python