Js数据去重复,时间更换格式,cookie,localStorage和sessionStorage的使用等通用方法
一,数组去重复
function unique(arr) {
// 遍历arr,把元素分别放入tmp数组(不存在才放)
var tmp = new Array();
for (var i in arr) {
//该元素在tmp内部不存在才允许追加
if (tmp.indexOf(arr[i]) == -) {
tmp.push(arr[i]);
}
}
return tmp;
}
使用例子:
var arr = [];
var narr = [];
for (var i = ; i < data.length; i++) {
Time.push(i);
}
arr.push();
narr = unique(arr);
二,时间格式化,方法
Date.prototype.Format = function (fmt) { //author: meizz
var o = {
"M+": this.getMonth() + , //月份
"d+": this.getDate(), //日
"h+": this.getHours(), //小时
"m+": this.getMinutes(), //分
"s+": this.getSeconds(), //秒
"q+": Math.floor((this.getMonth() + ) / ), //季度
"S": this.getMilliseconds() //毫秒
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$, (this.getFullYear() + "").substr( - RegExp.$.length)); //格式化年份
for (var k in o) //循环获取上面定义的月、日、小时等,格式化对应的数据。
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$, (RegExp.$.length == ) ? (o[k]) : (("" + 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 != -) {
cookie_pos += cookie_name.length + ;
var cookie_end = allcookies.indexOf(";", cookie_pos);
if (cookie_end == -) {
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() - );
var cval = getCookiex(name);
if (cval != null)
document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
}
调用例子:
setCookie("search","tt", );
var search = getCookiex("search");
delCookie("search");
四,localStorage的使用
localStorage.setItem('tt',); //设置
localStorage.getItem('tt'); //获取
localStorage.removeItem('tt'); //删除
localStorage.clear(); //删除所有值。
五,sessionStorage的使用
sessionStorage.setItem('tt',); //设置
sessionStorage.getItem('tt'); //获取
sessionStorage.removeItem('tt'); //删除
sessionStorage.clear(); //删除所有值。
而,综上,这三种浏览器存储又有什么区别呢?
1,Cookie:存在浏览器端,可设置失效时间,默认是关闭浏览器后失效,大小4K左右,同源窗口中共享,服务器与客户端可互传,Cookie的作用是与服务器进行交互,作为HTTP规范的一部分而存在 ,而Web Storage仅仅是为了在本地“存储”数据而生
2,localStorage:浏览器端,除非被清除,否则永久保存,一般为5MB,同源窗口中共享,仅在客户端(即浏览器)中保存,不参与和服务器的通信
3,sessionStorage:浏览器端,仅在当前会话下有效,关闭页面或浏览器后被清除,一般为5MB,不可在不同浏览器窗口中共享,仅在客户端(即浏览器)中保存,不参与和服务器的通信
Js数据去重复,时间更换格式,cookie,localStorage和sessionStorage的使用等通用方法的更多相关文章
- Cookie, LocalStorage 与 SessionStorage
Cookie, LocalStorage 与 SessionStorage相同点 都是储存在用户本地的数据. 意义在于避免数据在浏览器和服务器间不必要地来回传递. 三者的特点 同属于html5 ...
- 区分 Cookie, LocalStorage 与 SessionStorage
基本概念 Cookie Cookie 的大小限制为4KB左右,是网景公司的前雇员 Lou Montulli 在1993年3月的发明.它的主要用途有保存登录信息,比如你登录某个网站市场可以看到“记住密码 ...
- js 数组去重复的方法
数组去重复是js中常用的方法,归纳了四种如下: 1. for + indexOf 去重复 var arr = [3,5,5,4,1,1,2,3,7,2,5]; var target = []; fo ...
- Cookie, LocalStorage 与 SessionStorage说明
一.Cookie Cookie 大小限制为4KB左右,不适合大量数据的存储.因为它们由每个对服务器的请求来传递,这使得 cookie 速度很慢而且效率也不高.它的主要用途有保存登录信息,比如你 ...
- 详说 Cookie, LocalStorage 与 SessionStorage
本文最初发布于我的个人博客:咀嚼之味 最近在找暑期实习,其中百度.网易游戏.阿里的面试都问到一些关于HTML5的东西,问题大多是这样开头的:“你用过什么HTML5的技术呀?” 而后,每次都能扯到 Co ...
- cookie,localStorage和sessionStorage区别
三者的异同 特性 Cookie localStorage sessionStorage 数据的生命期 一般由服务器生成,可设置失效时间.如果在浏览器端生成Cookie,默认是关闭浏览器后失效 除非被清 ...
- JS 数组去重复值
var arr1 = [90, 91, 92]; var arr2 = [80, 81]; var arr3 = [80, 71, 72, 73]; var arr = arr1.concat(50, ...
- Js数组去重复取唯一值
function isBigEnough(element) { return element >= 10; } var filtered = [12, 5, 8, 130, 44].filter ...
- mysql数据去重复distinct、group by
使用distinct 和group by都可以实现数据去重. select distinct 字段 group by 一般放在where条件后
随机推荐
- python基础--局部变量与全局变量
#全局变量作用于全局或整个程序中,程序执行完毕后销毁,局部变量作用在当前函数中,调用函数执行完毕及销毁 #如果函数的内容无global关键字,优先读取同名局部变量,如果没有同名局部变量,只能读取同名全 ...
- python常用函数 U
update(dict) 字典合并,生成的为新的字典,新字典操作不会影响老字典. 例子:
- hdu 4651 Partition(整数拆分+五边形数)
Partition Time Limit: 6000/3000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total ...
- utf8 中文
#include <iostream> #include <codecvt> #include <fstream> #include <string> ...
- alert(1) to win 11
- 使用Node,Vue和ElasticSearch构建实时搜索引擎
(译者注:相关阅读:node.js,vue.js,Elasticsearch) 介绍 Elasticsearch是一个分布式的RESTful搜索和分析引擎,能够解决越来越多的用例. Elasticse ...
- MATLAB 和 armadillo 数据转换
#include<iostream> #include<armadillo> int D=5; int M=4; int main() { arma::fmat x; x.ra ...
- 032:DTL常用过滤器(1)
为什么需要过滤器: 在DTL中,不支持函数的调用形式‘()’,因此不能给函数传递参数,这将有很大的局限性:而过滤器其实就是一个函数,可以对需要处理的参数进行处理,并且还可以额外接受一个参数(也就是说: ...
- 【leetcode】1031. Maximum Sum of Two Non-Overlapping Subarrays
题目如下: Given an array A of non-negative integers, return the maximum sum of elements in two non-overl ...
- vim安装bundle和使用
一.准备工作 安装Git(因为下面我们选择的插件管理器需要使用到它)安装其他插件前首先需要选择一个Vim插件管理器,我这里选择的是Vundle,Vundle的工作过程中需要通过Git自动从远程创库同步 ...