深拷贝

export function type(obj) {
var toString = Object.prototype.toString
var map = {
'[object Boolean]': 'boolean',
'[object Number]': 'number',
'[object String]': 'string',
'[object Function]': 'function',
'[object Array]': 'array',
'[object Date]': 'date',
'[object RegExp]': 'regExp',
'[object Undefined]': 'undefined',
'[object Null]': 'null',
'[object Object]': 'object'
}
return map[toString.call(obj)]
} export function deepClone(data) {
var t = type(data); var o; var i; var ni if (t === 'array') {
o = []
} else if (t === 'object') {
o = {}
} else {
return data
} if (t === 'array') {
for (i = 0, ni = data.length; i < ni; i++) {
o.push(deepClone(data[i]))
}
return o
} else if (t === 'object') {
for (i in data) {
o[i] = deepClone(data[i])
}
return o
}
}

see them...

// 获取网址的get参数
var GET = function(name) {
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");
var r = window.location.search.substr(1).match(reg);
if (r != null) return (r[2]);
return null;
}
// 13位时间戳转日期
var getLocalTime = function(nS) {
//return new Date(parseInt(nS)).toLocaleString().replace(/:\d{1,2}$/,' ');
var date = new Date(nS);
var Y = date.getFullYear() + '/';
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '/';
var D = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate()) + ' ';
var h = date.getHours() + ':';
var m = (date.getMinutes() < 10 ? '0' + (date.getMinutes()) : date.getMinutes()) + ' ';
//var s = date.getSeconds();
return Y + M + D + h + m;
}
// 数组对象排序  data.sort(keysrt("firstWord"));
var keysrt = function(propertyName) {
return function(object1, object2) {
var value1 = object1[propertyName];
var value2 = object2[propertyName];
if (value2 < value1) {
return 1;
} else if (value2 > value1) {
return -1;
} else {
return 0;
}
}
}
// 判断数据类型
function type(elem) {
if (elem == null) {
return elem + '';
}
return toString.call(elem).replace(/[\[\]]/g, '').split(' ')[1].toLowerCase();
}
// 判断数组元素是否重复
isArrRepeat(arr) {
var _arr = arr.sort();
console.log(_arr)
for (var i = 0; i < _arr.length; i++) {
if (_arr[i] === _arr[i + 1]) {
return true;
}
}
return false;
}

截流防抖

function throttle(fn ,wait) {
let flag = false;
return function() {
if (flag) return;
flag = true;
fn.call(this, arguments);
setTimeout(() => {
flag = false;
}, wait);
}
} function debounce(fn, wait) {
let timer;
return function() {
if (timer) clearTimeout(timer);
timer = setTimeout(() => {
timer = null;
fn.call(this, arguments);
}, wait);
}
}

最新文章

  1. ASP.NET Core官方计划路线及需要废除的一些Framework技术
  2. Xcode7.1环境下上架iOS App到AppStore 流程③(Part 三)
  3. 04.ubuntu下kvm 命令行安装64位ubuntu报&quot;Couldn&#39;t find hvm kernel for Ubuntu tree.&quot;的问题
  4. maven install Failed to execute goal org.apache.maven.plugins:maven-war-plugin:2.1.1:war (default-war) on project web_nanchang
  5. Form表单提交的简要方式
  6. 修改SQL Server 2005 数据库文件名字
  7. 【iCore3 双核心板_ uC/OS-III】例程六:信号量——共享资源
  8. Eclipse环境下配置spket中ExtJS5.0提示
  9. js的数组操作 splice
  10. ibatis mysql replace into 返回ID
  11. mysql save or update
  12. javascript每日一练(五)——BOM
  13. 分区数据库oracle自动分区
  14. pureftpd支持php实现图片上传
  15. python学习记录20181220
  16. [转]git图解(3):分支操作
  17. [转]bootstrap的table插件动态加载表头
  18. 适用于目前环境的bug记录
  19. procedure
  20. Spring.Net---2、IoC/DI基本概念

热门文章

  1. jq封装淘宝图片轮播插件
  2. 3sum问题的解决
  3. BZOJ 1176: [Balkan2007]Mokia
  4. Asp.net MVC的ViewData与ViewBag以及TemplateData的使用与区别
  5. EasyUI 解决 datagrid 中 NumberBox 限制小数位数后不能输入小数点问题
  6. 解决Python中不能输入汉字的问题
  7. JMeter 集合点
  8. 接口返回值中数组中包含多个json对象形式
  9. Linux下oracle数据库启动和关闭操作
  10. 使用django开发博客过程记录5——日期归档和视图重写