/**
* ----------- 使用说明 ----------------
* getNowDate: 获取当前日期 和 时间
* getDynamicDate: 获取动态日期 和 时间
* unique: 数组去重 ES6
* unique_: 数组去重 ES5
* toFormat: 实现数字千分位
* deepCopy: 深拷贝
* getDataType: 获取数据类型
* getDeviceType: 获取当前设备类型
* ascArray: 数组 升序
* desArray: 打乱 数组
* upsetArray: 获取数组中的 最大值
* maxArrayVal: 获取数组中的 最小值
* minArrayVal: 获取数组中的 最小值
* ------------------------------------
*/
const COMMON = {
/**
* 获取当前设备类型
* @returns 返回一个 String
*/
getDeviceType: function() {
var deviceType = 'WEB' //其他
var u = navigator.userAgent
var isAndroid = u.indexOf('Android') > -1 || u.indexOf('Adr') > -1
var isiOS = !!u.match(/\(i[^;]+;( U;)? CPU.+Mac OS X/)
if (isAndroid) {
deviceType = 'Android'
} else if (isiOS) {
deviceType = 'IOS'
}
return deviceType;
},
/**
* 数组 升序
* @param { Array } arr 数组
* @returns
*/
ascArray: function(arr) {
var arr = arr || [];
arr.sort(function(a,b) {
return a - b;
})
return arr;
},
/**
* 数组 降序
* @param { Array } arr 数组
* @returns
*/
desArray: function(arr) {
var arr = arr || [];
arr.sort(function(a,b) {
return b - a;
})
return arr;
},
/**
* 打乱 数组
* @param { Array } arr 数组
* @returns 打乱后的数组
*/
upsetArray: function(arr) {
var arr = arr || [];
arr.sort(function(a,b) {
return Math.random() - 0.5;
})
return arr;
},
/**
* 获取数组中的 最大值
* @param { Array } arr 数组
* @returns 返回一个 数组里最大的 元素 Number
*/
maxArrayVal: function(arr) {
return Math.max.apply(null, arr);
},
/**
* 获取数组中的 最小值
* @param { Array } arr 数组
* @returns 返回一个 数组里最大的 元素 Number
*/
minArrayVal: function(arr) {
return Math.min.apply(null, arr);
},
/**
* 获取动态日期 和 时间
* @param { String } param 是一个 id 名称
*/
getDynamicDate: function(param) {
let obj = document.getElementById(param);
setInterval(() => {
obj.innerHTML = COMMON.getNowDate()
}, 1000);
},
/**
* 获取当前日期 和 时间
* @returns 返回一个字符串 2021-03-10 23:44:38
*/
getNowDate: function() {
var date = new Date();
var year = date.getFullYear(),
month = date.getMonth() + 1,
day = date.getDate(),
hour = date.getHours(),
minute = date.getMinutes(),
second = date.getSeconds();
var fill = function (num) {
num = num.toString();
return num.padStart(2, '0') // 为个位数时 补充前面的零
}
var currentdate = year + '-' + fill(month) + '-' + fill(day) + ' ' + fill(hour) + ':' + fill(minute) + ':' + fill(second);
return currentdate;
},
/**
* 数组去重 ES6
* @param { Array } 数组类型
* @returns 返回一个去重后的新数组
*/
unique: function(arr) {
return [...new Set(arr)];
},
/**
* 数组去重 ES5
* @param { Array } 数组类型
* @returns 返回一个去重后的新数组
*/
unique_: function(arr) {
if (Array.isArray(arr)) {
return arr.filter((item, index, array) => array.indexOf(item) === index);
}
},
/**
* 实现数字千分位
* @param { Number } 10000000
* @returns 返回一个字符串 10,000,000
*/
toFormat: function(num) {
num = Number(num);
return num.toLocaleString();
},
/**
* 深拷贝
* @param { Object } params
* @returns Object
*/
deepCopy: function(params) {
var obj;
if (typeof params === 'object') {
if (Array.isArray(params)) {
obj = [];
for (var i = 0; i < params.length; i++) {
obj.push(arguments.callee(params[i]))
}
} else {
obj = {};
for (var c in params) {
obj[c] = arguments.callee(params[c]);
}
}
} else { return params; }
return obj;
},
/**
* 获取数据类型
* @returns 数据类型
*/
getDataType: function(params) {
return Object.prototype.toString.call(params).slice(8, -1);
},
/**
* 判断当前浏览器是否是IE浏览器
* @returns 返回一个 Boolean
* true: 表示是IE浏览器
* false: 表示不是IE浏览器
*/
isIE: function() {
let flag = !!window.ActiveXObject || "ActiveXObject" in window
if (flag) {
return true;
}else {
return false;
}
}
}
11-10
10-21
192