HTML5 localStorage的本地存储验证方法封装

2017-05-26  本文已影响0人  大小伍
使用场景,可用于一些数据验证,兼顾数据去重,存储的时候验证是否localStorage已经存储过此条数据,进而进行下一步的逻辑交互。

上代码

存数据(验证是否重复,数据属于单次添加,data的id与localStorage取下来的id值做对比)

function setItemMethod(key,data){
    let storage = getItemMethod(key);
    let flag = true;
    if(storage == null){
        window.localStorage.setItem(key,JSON.stringify(data));
    }else{
        for(let p of storage){
        if(data[0].id == p.id){
            flag = false;
        }
    }
    if(flag){
        storage.push(data[0]);
        window.localStorage.setItem(key,JSON.stringify(storage));
    }else{
        // console.log('有重复,不添加');
    }
  }
}

取数据(从浏览器拿到名为key值得那条localStorage数据)

function getItemMethod(key){
    return JSON.parse(window.localStorage.getItem(key));
}

验证是否存在此数据,跟存数据拆分出来,单独做验证的方法,有重复就返回false,没重复就返回true

function isVote(key,data){
    let storage = getItemMethod(key);
    let flag = true;
    if(storage == null){
        return true;
    }else{
        for(let p of storage){
            if(data[0].id == p.id){
                flag = false;
            }
        }
        if(flag){
            // console.log('可添加');
            return true;
        }else{
          // console.log('有重复');
            return false;
        }
    }
}

使用方法

var data = [{
     id:3,
     name:'fdfff',
}];
setItemMethod('info',data);
console.log(getItemMethod('info'));
console.log(isVote('info',data));

希望对你有所帮助!

上一篇下一篇

猜你喜欢

热点阅读