首先说一下我写这篇文章的初衷,最近有用到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的一系列流程操作就介绍到这里,希望对你有所帮助!
网友评论