• 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,不可在不同浏览器窗口中共享,仅在客户端(即浏览器)中保存,不参与和服务器的通信

  • 相关阅读:
    React Native-安卓环境的搭建
    python爬虫学习之日志记录模块
    Python爬虫学习之正则表达式爬取个人博客
    eclipse运行spark程序时日志颜色为黑色的解决办法
    python爬虫学习之爬取全国各省市县级城市邮政编码
    python 字典详细使用
    python爬虫学习之查询IP地址对应的归属地
    python jieba库的基本使用
    Eclipse环境搭建并且运行wordcount程序
    Hadoop2.0伪分布式平台环境搭建
  • 原文地址:https://www.cnblogs.com/May-day/p/8351253.html
Copyright © 2020-2023  润新知