美文网首页前端
关于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