Js数据去重复,时间更换格式,cookie,localStorage和sessionStorage的使用等通用方法
一,数组去重复
function 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; }
使用例子:
var arr = []; var narr = []; for (var i = 0; i < data.length; i++) { Time.push(i); } arr.push(1); narr = unique(arr);
二,时间格式化,方法
Date.prototype.Format = function (fmt) { //author: meizz var o = { "M+": this.getMonth() + 1, //月份 "d+": this.getDate(), //日 "h+": this.getHours(), //小时 "m+": this.getMinutes(), //分 "s+": this.getSeconds(), //秒 "q+": Math.floor((this.getMonth() + 3) / 3), //季度 "S": this.getMilliseconds() //毫秒 }; if (/(y+)/.test(fmt)) fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length)); //格式化年份 for (var k in o) //循环获取上面定义的月、日、小时等,格式化对应的数据。 if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length))); return fmt; }
调用例子:
var time =new Date().Format("yyyy年MM月dd日"); var time2 =new Date().Format("yyyy-MM-dd"); var time3 =new Date("2012-10-11").Format("yyyy年MM月dd日");
三,js的cookie的生成和删除方法
function getCookiex(cookie_name) { var allcookies = document.cookie; var cookie_pos = allcookies.indexOf(cookie_name); if (cookie_pos != -1) { cookie_pos += cookie_name.length + 1; var cookie_end = allcookies.indexOf(";", cookie_pos); if (cookie_end == -1) { cookie_end = allcookies.length; } var value = unescape(allcookies.substring(cookie_pos, cookie_end)); } return value; } function setCookie(c_name, value, expiredays) { var exdate = new Date() exdate.setDate(exdate.getDate() + expiredays) document.cookie = c_name + "=" + escape(value) + ((expiredays == null) ? "" : ";expires=" + exdate.toGMTString()) } function delCookie(name) { var exp = new Date(); exp.setTime(exp.getTime() - 1); var cval = getCookiex(name); if (cval != null) document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString(); }
调用例子:
setCookie("search","tt", 365); var search = getCookiex("search"); delCookie("search");
四,localStorage的使用
localStorage.setItem('tt',11); //设置 localStorage.getItem('tt'); //获取 localStorage.removeItem('tt'); //删除 localStorage.clear(); //删除所有值。
五,sessionStorage的使用
sessionStorage.setItem('tt',11); //设置 sessionStorage.getItem('tt'); //获取 sessionStorage.removeItem('tt'); //删除 sessionStorage.clear(); //删除所有值。
而,综上,这三种浏览器存储又有什么区别呢?
1,Cookie:存在浏览器端,可设置失效时间,默认是关闭浏览器后失效,大小4K左右,同源窗口中共享,服务器与客户端可互传,Cookie的作用是与服务器进行交互,作为HTTP规范的一部分而存在 ,而Web Storage仅仅是为了在本地“存储”数据而生
2,localStorage:浏览器端,除非被清除,否则永久保存,一般为5MB,同源窗口中共享,仅在客户端(即浏览器)中保存,不参与和服务器的通信
3,sessionStorage:浏览器端,仅在当前会话下有效,关闭页面或浏览器后被清除,一般为5MB,不可在不同浏览器窗口中共享,仅在客户端(即浏览器)中保存,不参与和服务器的通信