对象属性复制
export function objectAssign(dest, source) {
if (Object.assign) {
return Object.assign(dest, source);
}
for (var key in source) {
dest[key] = source[key];
}
return dest;
}
获取url参数
export function getQueryString(name) {
let reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
let result = location.search.substr(1).match(reg);
return result ? unescape(result[2]) : "";
}
字符串去空格
export function strTrim(str) {
return str.replace(/(^s*)|(s*$)/g, "");
}
生成全局唯一的id
export function uniqueId() {
let localTime = new Date().getTime();
return localTime + Math.ceil(Math.random() * 10000);
}
根据keyName生成数组查找函数
export function genItemSearchHandler(keyName) {
return function(items, key) {
for (var i = 0; i < items.length; ++i) {
if (items[i][keyName] == key) {
return items[i];
}
}
return null;
};
}
根据keyName生成数组index查找函数
export function genIndexSearchHandler(keyName) {
return function(items, key) {
for (var i = 0; i < items.length; ++i) {
if (items[i][keyName] == key) {
return i;
}
}
return null;
};
}
DOM处理
export function findParentNodeByCls(target, clsName) {
while (target != window.document.body) {
const cls = target.getAttribute("class");
if (cls && cls.indexOf(clsName) !== -1) {
return target;
}
target = target.parentNode;
}
return null;
}
动态加载资源
export function preLoadResouce(url, onloadCB) {
var head = document.getElementsByTagName("head")[0];
var element = document.createElement("script");
element.type = "text/javascript";
element.src = url;
if (typeof onloadCB === "function") {
element.onload = function() {
element.onload = null;
onloadCB();
};
}
head.appendChild(element);
}
时间格式化
export function dateFormat(date, format = "YYYY-MM-DD hh:mm") {
let ret = format.replace("YYYY", padStartZero(date.getFullYear(), 4));
ret = ret.replace("MM", padStartZero(date.getMonth() + 1, 2));
ret = ret.replace("DD", padStartZero(date.getDate(), 2));
ret = ret.replace("hh", padStartZero(date.getHours(), 2));
ret = ret.replace("mm", padStartZero(date.getMinutes(), 2));
ret = ret.replace("ss", padStartZero(date.getSeconds(), 2));
return ret;
}
获取n天的秒数
export function getDayMilliseconds(n = 1) {
return n * 24 * 60 * 60 * 1000;
}
递归查找数据
export function recursionFind(datas = [], predcate, subPropName) {
let ret = null;
datas.some(function(data) {
if (predcate(data)) {
ret = data;
return true;
}
if (isArray(data[subPropName])) {
ret = recursionFind(data[subPropName], predcate, subPropName);
return ret != null;
}
});
return ret;
}
在光标处插入文字
export function insertAtCursor(obj, str) {
if (document.selection) {
var sel = document.selection.createRange();
sel.text = str;
} else if (typeof obj.selectionStart === "number" && typeof obj.selectionEnd === "number") {
var startPos = obj.selectionStart,
endPos = obj.selectionEnd,
cursorPos = startPos,
tmpStr = obj.value;
obj.value = tmpStr.substring(0, startPos) + str + tmpStr.substring(endPos, tmpStr.length);
cursorPos += str.length;
obj.selectionStart = obj.selectionEnd = cursorPos;
} else {
obj.value += str;
}
}
删除Cookie
export function delCookie(name) {
let exp = new Date();
exp.setTime(exp.getTime() - 2 * 60 * 1000);
let cval = getCookie(name);
if (cval != null) {
document.cookie = name + "=" + cval + ";expires=" + exp.toGMTString();
}
}
获取Cookie
export function getCookie(name) {
let arr,
reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
if ((arr = document.cookie.match(reg))) {
return unescape(arr[2]);
} else {
return null;
}
}
数组去重
export function arrayDeduplicate(arr) {
return [...new Set(arr)];
}