js数组和JSON的本地存储(localstorage如何保存数组和JSON)

https://www.bilibili.com/video/BV1vB4y1q766

在这里插入图片描述

在整个存储过程中:
  • JSON.stringify(序列化)负责把数组或JSON转成字符串
  • JSON.parse(反序列化)把字符串转成数组或JSON
  • localStorage负责保存读取数据
为什么要转来转去?

因为localStorage只能存取字符串

		//创建一个保存函数
        var save = function (arr) {
            localStorage.my=JSON.stringify(arr)
        }
        //读取函数
        var read=function(){
            return  JSON.parse(localStorage.my)//把本地存储的my转成数组
        }

在这里插入图片描述
在这里插入图片描述

    测试数据存储<input type="text" id="inp">
    <button id="btsave">保存</button>
    <button id="btread">读取</button>
    <button id="btclear">清空数据</button>
    <script>
        //获取元素
        const einp = document.querySelector('#inp');
        const ebtsave = document.querySelector('#btsave');
        const ebtread = document.querySelector('#btread');
        const ebtclear = document.querySelector('#btclear');
        //获取按钮点击事件
        ebtsave.onclick = function () {
            //开始我们的数组保存吧
            let myarr=[];
            let  myjson={};
            if(localStorage.my!=null){//如果my不是空的,那就把数组传给myarr
                myarr=read()
            }
            //先报输入框中的内容传给json中的name,然后把json加入到数组中
            myjson.name=einp.value;
            myarr.push(myjson);/*把输入框的数据存储到数组中*/
            save(myarr);//保存
            //每次保存清空输入框,并把焦点回到输入框
            einp.value='';
            einp.focus();
            
        };
        ebtread.onclick = function () {
           console.log(localStorage.my)
           //console.log(read())
           
        };
        ebtclear.onclick = function () {
            //清除保存的数据

            localStorage.clear()
        };

        //创建一个保存函数
        var save = function (arr) {
            localStorage.my=JSON.stringify(arr);//把数组变成字符串存入my中
        }
        //读取函数
        var read=function(){
            return  JSON.parse(localStorage.my)//把本地存储的my转成数组
        }



    </script>

在这里插入图片描述

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值