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】pyenv与virtualenv安装,实现python多版本多项目管理
踩了很多坑,记录一下这次试验,本次测试环境:Linux centos7 64位. pyenv是一个python版本管理工具,它能够进行全局的python版本切换,也可以为单个项目提供对应的python ...
- linux基础知识(三)
添加用户 •useradd -d 家目录 -g 组名 -G 组集合(逗号间隔) -p 密码 -s 用户shell程序 用户名 •useradd -d /usr/local/nginx/ -g ngin ...
- nginx 重写
rewrite指令可在 server 块或者 location 块中配置. 语法: rewrite regex replacement [flag]; 1.rewrite 接收的 uri 不包含 ho ...
- 多组件共享-vuex
1.解决多个组件共享同一状态数据问题1)多个视图共享同一状态2)来自不同视图的触发事件需要变更同一状态文档API:https://vuex.vuejs.org/zh/api/ 2.组件与store连接 ...
- C++遍历循环多维数组
#include <iostream> using namespace std; int main() { int arr[2][2][2] = {0}; for(auto&&am ...
- 对webpack的初步研究5
Loaders 加载器是应用于模块源代码的转换.它们允许您在处理import或“加载” 文件时预处理文件.因此,加载器有点像其他构建工具中的“任务”,并提供了处理前端构建步骤的强大方法.加载器可以将文 ...
- Flask学习笔记02之配置文件
1. Flask默认的配置 Flask实例中包含了它的配置信息 #实例化一个Flask对象 app = Flask(__name__) # 打印默认配置信息 print(app.config) 打印结 ...
- jQuery FileUpload doesn't trigger 'done'
https://stackoverflow.com/questions/14674999/jquery-fileupload-doesnt-trigger-done If your server ...
- js/jq 小功能函数
1.点击复制内容到剪贴板 function copyToClip(str) { var save = function(e) { e.clipboardData.setData('text/plain ...
- Flask-SQLALchemy动态的filter_by和filter
1.filter_by filter_by用于查询简单的列名,不支持比较运算符. filters = {'name': 'fengyao', 'age': 26} User.query.filter_ ...