• 欢迎访问本网站,技术教程,资源分享,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站,欢迎加入东蓬莱!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏东部蓬莱吧

JSON.stringify()的几种妙用

前端开发 Jokul 1年前 (2020-06-15) 2556次浏览 0个评论 扫描二维码
  • 判断数组是否包含某对象,或者判断对象是否相等。
    //判断数组是否包含某对象
    let data = [
        {name:'echo'},
        {name:'听风是风'},
        {name:'天子笑'},
        ],
        val = {name:'天子笑'};
    JSON.stringify(data).indexOf(JSON.stringify(val)) !== -1;//true
    
    //判断两数组/对象是否相等
    let a = [1,2,3],
        b = [1,2,3];
    JSON.stringify(a) === JSON.stringify(b);//true
    
  • 让localStorage/sessionStorage可以存储对象。
    localStorage/sessionStorage默认只能存储字符串,而实际开发中,我们往往需要存储的数据多为对象类型,那么这里我们就可以在存储时利用json.stringify()将对象转为字符串,而在取缓存时,只需配合json.parse()转回对象即可。

    //存
    function setLocalStorage(key,val){
        window.localStorage.setItem(key,JSON.stringify(val));
    };
    //取
    function getLocalStorage(key){
        let val = JSON.parse(window.localStorage.getItem(key));
        return val;
    };
    //测试
    setLocalStorage('demo',[1,2,3]);
    let  a = getLocalStorage('demo');//[1,2,3]
    
  • 实现对象深拷贝
    实际开发中,如果怕影响原数据,我们常深拷贝出一份数据做任意操作,其实使用JSON.stringify()与JSON.parse()来实现深拷贝是很不错的选择。

    //深拷贝
    function deepClone(data) {
        let _data = JSON.stringify(data),
            dataClone = JSON.parse(_data);
        return dataClone;
    };
    //测试
    let arr = [1,2,3],
        _arr = deepClone(arr);
    arr[0] = 2;
    console.log(arr,_arr)//[2,2,3]  [1,2,3]
    

  • 东部蓬莱 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
    转载请注明原文链接:JSON.stringify()的几种妙用
    喜欢 (0)
    [支付宝]
    分享 (0)
    发表我的评论
    取消评论
    表情 贴图 加粗 删除线 居中 斜体 签到

    Hi,您需要填写昵称和邮箱!

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址