美文网首页前端
关于cookie存取数组的用法

关于cookie存取数组的用法

作者: 大小伍 | 来源:发表于2017-04-18 19:04 被阅读106次
    首先说一下我写这篇文章的初衷,最近有用到cookie的一些相关操作,但是检索了很多网上的文章大多数都是存取单个数据的cookie封装,cookie存取数组的文章很少,为了方便后边的同学减少开发中浪费过多时间,所以借鉴一些文章和自己的代码加工编写了此文。
    数组去重
    const unique = (arr) => {
            // 遍历arr,把元素分别放入tmp数组(不存在才放)
            var tmp = new Array();
            for(var i in arr){
                //该元素在tmp内部不存在才允许追加
                if(tmp.indexOf(arr[i])===-1){
                    tmp.push(arr[i]);
                }
            }
            return tmp;
        }
    
    存cookie
        const setCookie = (name,value,day) => {
            const date = new Date();//用来设置过期时间用的,获取当前时间加上传进来的iDay就是过期时间
            date.setDate(date.getDate() + day);
            const cookieObj = [];
            if(getCookie(name) !== null){
                if(getCookie(name).split(',').length >= 1) {
                    for(let i = 0;i < getCookie(name).split(',').length;i++){
                        cookieObj.push(getCookie(name).split(',')[i]);
                    }
                }else{
                    cookieObj.push(getCookie(name).split(','));
                }
    
            }
            cookieObj.push(value);
            let arr = unique(cookieObj);//数组去重
            document.cookie = name + '=' + arr + ';expires=' + date;
        }
    
    取cookie
     const getCookie = (name) => {
          if (document.cookie.length>0){
              let start = document.cookie.indexOf(name + "=")
              if (start != -1){
                  start = start + name.length + 1;
                  let end = document.cookie.indexOf(";",start);
                  if (end == -1)  end = document.cookie.length
                      return unescape(document.cookie.substring(start,end))
                  }
              }
              return null;
        }
    
    删除cookie

    (一般用不到,存储cookie的时候可以传入失效时间)

      const removeCookie = (name) =>{
            setCookie(name, 1, -1); //-1就是告诉浏览器数据已经过期,浏览器就会立刻去删除cookie
        };
    
    用法
        // 存储cookie,有效期521天;
        setCookie('haha',value,521);//'haha'是cookie的名,value就是你要存的具体数据,521就是设置的保存时间
        const haha = getCookie('haha');/
        if(haha === null) {
            $scope.haha = '';
        }else{
            const arrHaha = haha.split(',');        
        }
    

    此时html就可以渲染arrHaha这条cookie数据;
    至此,关于cookie的一系列流程操作就介绍到这里,希望对你有所帮助!

    相关文章

      网友评论

        本文标题:关于cookie存取数组的用法

        本文链接:https://www.haomeiwen.com/subject/mfhqzttx.html